diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version index 7092c7c4..d183d4ac 100644 --- a/.pulumi-java-gen.version +++ b/.pulumi-java-gen.version @@ -1 +1 @@ -0.15.0 \ No newline at end of file +0.16.0 \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-mongodbatlas/bridge-metadata.json b/provider/cmd/pulumi-resource-mongodbatlas/bridge-metadata.json index bb482536..0dd90d69 100644 --- a/provider/cmd/pulumi-resource-mongodbatlas/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-mongodbatlas/bridge-metadata.json @@ -391,6 +391,10 @@ } } }, + "mongodbatlas_encryption_at_rest_private_endpoint": { + "current": "mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", + "majorVersion": 3 + }, "mongodbatlas_event_trigger": { "current": "mongodbatlas:index/eventTrigger:EventTrigger", "majorVersion": 3, @@ -796,6 +800,10 @@ } } }, + "mongodbatlas_stream_processor": { + "current": "mongodbatlas:index/streamProcessor:StreamProcessor", + "majorVersion": 3 + }, "mongodbatlas_team": { "current": "mongodbatlas:index/team:Team", "majorVersion": 3, @@ -1641,6 +1649,23 @@ } } }, + "mongodbatlas_encryption_at_rest": { + "current": "mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", + "majorVersion": 3 + }, + "mongodbatlas_encryption_at_rest_private_endpoint": { + "current": "mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", + "majorVersion": 3 + }, + "mongodbatlas_encryption_at_rest_private_endpoints": { + "current": "mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", + "majorVersion": 3, + "fields": { + "results": { + "maxItemsOne": false + } + } + }, "mongodbatlas_event_trigger": { "current": "mongodbatlas:index/getEventTrigger:getEventTrigger", "majorVersion": 3, @@ -2383,6 +2408,29 @@ "current": "mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList", "majorVersion": 3 }, + "mongodbatlas_project_ip_addresses": { + "current": "mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", + "majorVersion": 3, + "fields": { + "services": { + "fields": { + "clusters": { + "maxItemsOne": false, + "elem": { + "fields": { + "inbound": { + "maxItemsOne": false + }, + "outbound": { + "maxItemsOne": false + } + } + } + } + } + } + } + }, "mongodbatlas_projects": { "current": "mongodbatlas:index/getProjects:getProjects", "majorVersion": 3, @@ -2573,6 +2621,19 @@ } } }, + "mongodbatlas_stream_processor": { + "current": "mongodbatlas:index/getStreamProcessor:getStreamProcessor", + "majorVersion": 3 + }, + "mongodbatlas_stream_processors": { + "current": "mongodbatlas:index/getStreamProcessors:getStreamProcessors", + "majorVersion": 3, + "fields": { + "results": { + "maxItemsOne": false + } + } + }, "mongodbatlas_team": { "current": "mongodbatlas:index/getTeam:getTeam", "majorVersion": 3, @@ -2660,6 +2721,7 @@ "mongodbatlas:index/dataLakePipeline:DataLakePipeline": 0, "mongodbatlas:index/databaseUser:DatabaseUser": 1, "mongodbatlas:index/encryptionAtRest:EncryptionAtRest": 1, + "mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint": 1, "mongodbatlas:index/eventTrigger:EventTrigger": 0, "mongodbatlas:index/federatedDatabaseInstance:FederatedDatabaseInstance": 0, "mongodbatlas:index/federatedQueryLimit:FederatedQueryLimit": 0, @@ -2691,6 +2753,7 @@ "mongodbatlas:index/serverlessInstance:ServerlessInstance": 0, "mongodbatlas:index/streamConnection:StreamConnection": 1, "mongodbatlas:index/streamInstance:StreamInstance": 1, + "mongodbatlas:index/streamProcessor:StreamProcessor": 1, "mongodbatlas:index/team:Team": 0, "mongodbatlas:index/teams:Teams": 0, "mongodbatlas:index/thirdPartyIntegration:ThirdPartyIntegration": 0, @@ -2733,6 +2796,9 @@ "mongodbatlas:index/getDataLakePipelines:getDataLakePipelines": 0, "mongodbatlas:index/getDatabaseUser:getDatabaseUser": 1, "mongodbatlas:index/getDatabaseUsers:getDatabaseUsers": 1, + "mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest": 1, + "mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint": 1, + "mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints": 1, "mongodbatlas:index/getEventTrigger:getEventTrigger": 0, "mongodbatlas:index/getEventTriggers:getEventTriggers": 0, "mongodbatlas:index/getFederatedDatabaseInstance:getFederatedDatabaseInstance": 0, @@ -2771,6 +2837,7 @@ "mongodbatlas:index/getProjectApiKeys:getProjectApiKeys": 0, "mongodbatlas:index/getProjectInvitation:getProjectInvitation": 0, "mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList": 1, + "mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses": 1, "mongodbatlas:index/getProjects:getProjects": 1, "mongodbatlas:index/getPushBasedLogExport:getPushBasedLogExport": 1, "mongodbatlas:index/getRolesOrgId:getRolesOrgId": 0, @@ -2787,6 +2854,8 @@ "mongodbatlas:index/getStreamConnections:getStreamConnections": 1, "mongodbatlas:index/getStreamInstance:getStreamInstance": 1, "mongodbatlas:index/getStreamInstances:getStreamInstances": 1, + "mongodbatlas:index/getStreamProcessor:getStreamProcessor": 1, + "mongodbatlas:index/getStreamProcessors:getStreamProcessors": 1, "mongodbatlas:index/getTeam:getTeam": 0, "mongodbatlas:index/getTeams:getTeams": 0, "mongodbatlas:index/getThirdPartyIntegration:getThirdPartyIntegration": 0, diff --git a/provider/cmd/pulumi-resource-mongodbatlas/schema.json b/provider/cmd/pulumi-resource-mongodbatlas/schema.json index 0fbf7baa..a8999f51 100644 --- a/provider/cmd/pulumi-resource-mongodbatlas/schema.json +++ b/provider/cmd/pulumi-resource-mongodbatlas/schema.json @@ -157,6 +157,10 @@ }, "mongodbatlas:index/AdvancedClusterAdvancedConfiguration:AdvancedClusterAdvancedConfiguration": { "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.\n" + }, "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. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation.\n", @@ -1587,6 +1591,10 @@ }, "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.\n" + }, "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. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/).\n", @@ -2313,35 +2321,42 @@ "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": "The AWS customer master key used to encrypt and decrypt the MongoDB master keys.\n", + "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": "Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details.\n" + "description": "Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.\n" }, "region": { "type": "string", - "description": "The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1\n" + "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" }, "roleId": { "type": "string", - "description": "ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource.\n" + "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" + "enabled", + "valid" ] } } @@ -2350,51 +2365,61 @@ "properties": { "azureEnvironment": { "type": "string", - "description": "The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY\n" + "description": "Azure environment in which your account credentials reside.\n" }, "clientId": { "type": "string", - "description": "The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant.\n", + "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": "Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details.\n" + "description": "Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.\n" }, "keyIdentifier": { "type": "string", - "description": "The unique identifier of a key in an Azure Key Vault.\n", + "description": "Web address with a unique key that identifies for your Azure Key Vault.\n", "secret": true }, "keyVaultName": { "type": "string", - "description": "The name of an Azure Key Vault containing your key.\n" + "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": "The name of the Azure Resource group that contains an Azure Key Vault.\n" + "description": "Name of the Azure resource group that contains your Azure Key Vault.\n" }, "secret": { "type": "string", - "description": "The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID.\n", + "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": "The unique identifier associated with an Azure subscription.\n", + "description": "Unique 36-hexadecimal character string that identifies your Azure subscription.\n", "secret": true }, "tenantId": { "type": "string", - "description": "The unique identifier for an Azure AD tenant within an Azure subscription.\n", + "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": [ - "enabled" + "enabled", + "requirePrivateNetworking", + "valid" ] } } @@ -2403,24 +2428,29 @@ "properties": { "enabled": { "type": "boolean", - "description": "Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details.\n" + "description": "Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.\n" }, "keyVersionResourceId": { "type": "string", - "description": "The Key Version Resource ID from your GCP account.\n", + "description": "Resource path that displays the key version resource ID for your Google Cloud KMS.\n", "secret": true }, "serviceAccountKey": { "type": "string", - "description": "String-formatted JSON object containing GCP KMS credentials from your GCP account.\n", + "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" + "enabled", + "valid" ] } } @@ -3522,6 +3552,40 @@ } } }, + "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/X509AuthenticationDatabaseUserCertificate:X509AuthenticationDatabaseUserCertificate": { "properties": { "createdAt": { @@ -3625,6 +3689,10 @@ }, "mongodbatlas:index/getAdvancedClusterAdvancedConfiguration:getAdvancedClusterAdvancedConfiguration": { "properties": { + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": { + "type": "integer", + "description": "(Optional) The minimum pre- and post-image retention time in seconds.\n" + }, "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. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation.\n", @@ -3674,6 +3742,7 @@ }, "type": "object", "required": [ + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds", "defaultReadConcern", "defaultWriteConcern", "failIndexKeyTooLong", @@ -4208,7 +4277,7 @@ "$ref": "#/types/mongodbatlas:index/getAdvancedClustersResultLabel:getAdvancedClustersResultLabel" }, "description": "Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -4229,6 +4298,10 @@ "type": "boolean", "description": "Flag that indicates if the cluster uses Continuous Cloud Backup.\n" }, + "replicaSetScalingStrategy": { + "type": "string", + "description": "(Optional) Replica set scaling mode for your cluster.\n" + }, "replicationSpecs": { "type": "array", "items": { @@ -4277,6 +4350,7 @@ "name", "paused", "pitEnabled", + "replicaSetScalingStrategy", "replicationSpecs", "rootCertType", "stateName", @@ -4292,6 +4366,10 @@ }, "mongodbatlas:index/getAdvancedClustersResultAdvancedConfiguration:getAdvancedClustersResultAdvancedConfiguration": { "properties": { + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": { + "type": "integer", + "description": "(Optional) The minimum pre- and post-image retention time in seconds.\n" + }, "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. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation.\n", @@ -4335,11 +4413,13 @@ "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" }, "transactionLifetimeLimitSeconds": { - "type": "integer" + "type": "integer", + "description": "(Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds.\n" } }, "type": "object", "required": [ + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds", "defaultReadConcern", "defaultWriteConcern", "failIndexKeyTooLong", @@ -6619,6 +6699,10 @@ }, "mongodbatlas:index/getClusterAdvancedConfiguration:getClusterAdvancedConfiguration": { "properties": { + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": { + "type": "integer", + "description": "(Optional) The minimum pre- and post-image retention time in seconds.\n" + }, "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. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/).\n", @@ -6668,6 +6752,7 @@ }, "type": "object", "required": [ + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds", "defaultReadConcern", "defaultWriteConcern", "failIndexKeyTooLong", @@ -7133,7 +7218,7 @@ "$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 `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -7304,6 +7389,10 @@ }, "mongodbatlas:index/getClustersResultAdvancedConfiguration:getClustersResultAdvancedConfiguration": { "properties": { + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": { + "type": "integer", + "description": "(Optional) The minimum pre- and post-image retention time in seconds.\n" + }, "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. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/).\n", @@ -7352,6 +7441,7 @@ }, "type": "object", "required": [ + "changeStreamOptionsPreAndPostImagesExpireAfterSeconds", "defaultReadConcern", "defaultWriteConcern", "failIndexKeyTooLong", @@ -8706,6 +8796,209 @@ } } }, + "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). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.\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" + }, + "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", + "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. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.\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" + }, + "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", + "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. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.\n" + }, + "keyVersionResourceId": { + "type": "string", + "description": "Resource path that displays the key version resource ID for your Google Cloud KMS.\n", + "secret": true + }, + "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", + "serviceAccountKey", + "valid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "mongodbatlas:index/getEncryptionAtRestPrivateEndpointsResult:getEncryptionAtRestPrivateEndpointsResult": { + "properties": { + "cloudProvider": { + "type": "string", + "description": "Label that identifies the cloud provider of the 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": { @@ -11582,7 +11875,8 @@ "type": "array", "items": { "$ref": "#/types/mongodbatlas:index/getProjectIpAddressesServicesCluster:getProjectIpAddressesServicesCluster" - } + }, + "description": "IP addresses of clusters.\n" } }, "type": "object", @@ -11598,19 +11892,22 @@ "mongodbatlas:index/getProjectIpAddressesServicesCluster:getProjectIpAddressesServicesCluster": { "properties": { "clusterName": { - "type": "string" + "type": "string", + "description": "Human-readable label that identifies the cluster.\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", @@ -11703,7 +12000,8 @@ }, "ipAddresses": { "$ref": "#/types/mongodbatlas:index/getProjectsResultIpAddresses:getProjectsResultIpAddresses", - "description": "IP addresses in a project categorized by services. See IP Addresses.\n" + "description": "IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead.\n", + "deprecationMessage": "This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source." }, "isCollectDatabaseSpecificsStatisticsEnabled": { "type": "boolean", @@ -12698,28 +12996,168 @@ } } }, - "mongodbatlas:index/getThirdPartyIntegrationsResult:getThirdPartyIntegrationsResult": { + "mongodbatlas:index/getStreamProcessorOptions:getStreamProcessorOptions": { "properties": { - "accountId": { - "type": "string" - }, - "apiKey": { + "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": "Your API Key.\n", - "secret": true - }, - "channelName": { - "type": "string" + "description": "Name of the collection to use for the DLQ.\n" }, - "enabled": { - "type": "boolean", - "description": "Whether your cluster has Prometheus enabled.\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 identifier of the integration.\n" + "description": "Unique 24-hexadecimal character string that identifies the stream processor.\n" }, - "microsoftTeamsWebhookUrl": { + "instanceName": { + "type": "string", + "description": "Human-readable label that identifies the stream instance.\n" + }, + "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.\n" + }, + "processorName": { + "type": "string", + "description": "Human-readable 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.\n" + }, + "stats": { + "type": "string", + "description": "The stats associated with the stream processor.\n" + } + }, + "type": "object", + "required": [ + "id", + "instanceName", + "options", + "pipeline", + "processorName", + "projectId", + "state", + "stats" + ], + "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/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 @@ -13057,7 +13495,7 @@ "$ref": "#/types/mongodbatlas:index/AdvancedClusterLabel:AdvancedClusterLabel" }, "description": "Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -13082,6 +13520,10 @@ "type": "string", "description": "Unique ID for the project to create the database user.\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": { @@ -13134,6 +13576,7 @@ "paused", "pitEnabled", "projectId", + "replicaSetScalingStrategy", "replicationSpecs", "rootCertType", "stateName", @@ -13179,7 +13622,7 @@ "$ref": "#/types/mongodbatlas:index/AdvancedClusterLabel:AdvancedClusterLabel" }, "description": "Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -13202,6 +13645,10 @@ "description": "Unique ID for the project to create the database user.\n", "willReplaceOnChanges": true }, + "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": { @@ -13293,7 +13740,7 @@ "$ref": "#/types/mongodbatlas:index/AdvancedClusterLabel:AdvancedClusterLabel" }, "description": "Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -13320,6 +13767,10 @@ "description": "Unique ID for the project to create the database user.\n", "willReplaceOnChanges": true }, + "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": { @@ -15082,7 +15533,7 @@ "$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 `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -15304,7 +15755,7 @@ "$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 `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -15472,7 +15923,7 @@ "$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 `tags` instead.\n", - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags." + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags" }, "mongoDbMajorVersion": { "type": "string", @@ -16152,20 +16603,22 @@ } }, "mongodbatlas:index/encryptionAtRest:EncryptionAtRest": { - "description": "\n\n## Import\n\nEncryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934\n```\nFor more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management)\n\n", "properties": { "awsKmsConfig": { - "$ref": "#/types/mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig" + "$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" + "$ref": "#/types/mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig", + "description": "Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n" }, "googleCloudKmsConfig": { - "$ref": "#/types/mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig" + "$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": "The unique identifier for the project.\n" + "description": "Unique 24-hexadecimal digit string that identifies your project.\n" } }, "required": [ @@ -16173,17 +16626,20 @@ ], "inputProperties": { "awsKmsConfig": { - "$ref": "#/types/mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig" + "$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" + "$ref": "#/types/mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig", + "description": "Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n" }, "googleCloudKmsConfig": { - "$ref": "#/types/mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig" + "$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": "The unique identifier for the project.\n" + "description": "Unique 24-hexadecimal digit string that identifies your project.\n" } }, "requiredInputs": [ @@ -16193,17 +16649,106 @@ "description": "Input properties used for looking up and filtering EncryptionAtRest resources.\n", "properties": { "awsKmsConfig": { - "$ref": "#/types/mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig" + "$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" + "$ref": "#/types/mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig", + "description": "Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n" }, "googleCloudKmsConfig": { - "$ref": "#/types/mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig" + "$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": "## # Resource: mongodbatlas.EncryptionAtRestPrivateEndpoint\n\n`mongodbatlas.EncryptionAtRestPrivateEndpoint` 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 **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. \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\u003e **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `mongodbatlas.EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. 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 is supported at this time.\n\n### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link\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/v3/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", + "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" + }, + "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" + } + }, + "required": [ + "cloudProvider", + "errorMessage", + "privateEndpointConnectionName", + "projectId", + "regionName", + "status" + ], + "inputProperties": { + "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" + }, + "regionName": { + "type": "string", + "description": "Cloud provider region in which the Encryption At Rest private endpoint is located.\n" + } + }, + "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" + }, + "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": "The unique identifier for the project.\n" + "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" @@ -18398,7 +18943,8 @@ "description": "Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted\n" }, "syncCreation": { - "type": "boolean" + "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 `false`.\n" } }, "required": [ @@ -18465,7 +19011,8 @@ "description": "Regular frequency and duration when archiving process occurs. See schedule.\n" }, "syncCreation": { - "type": "boolean" + "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 `false`.\n" } }, "requiredInputs": [ @@ -18536,7 +19083,8 @@ "description": "Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted\n" }, "syncCreation": { - "type": "boolean" + "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 `false`.\n" } }, "type": "object" @@ -19642,7 +20190,8 @@ }, "ipAddresses": { "$ref": "#/types/mongodbatlas:index/ProjectIpAddresses:ProjectIpAddresses", - "description": "IP addresses in a project categorized by services. See IP Addresses.\n" + "description": "IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead.\n", + "deprecationMessage": "This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source." }, "isCollectDatabaseSpecificsStatisticsEnabled": { "type": "boolean", @@ -19804,7 +20353,8 @@ }, "ipAddresses": { "$ref": "#/types/mongodbatlas:index/ProjectIpAddresses:ProjectIpAddresses", - "description": "IP addresses in a project categorized by services. See IP Addresses.\n" + "description": "IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead.\n", + "deprecationMessage": "This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source." }, "isCollectDatabaseSpecificsStatisticsEnabled": { "type": "boolean", @@ -21011,6 +21561,113 @@ "type": "object" } }, + "mongodbatlas:index/streamProcessor:StreamProcessor": { + "description": "## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\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 .cloud_provider(\"AWS\")\n .build())\n .build());\n\n var example_sample = new StreamConnection(\"example-sample\", StreamConnectionArgs.builder()\n .projectId(projectId)\n .instanceName(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 .instanceName(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 .instanceName(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(\"PLAINTEXT\")\n .build())\n .build());\n\n var stream_processor_sample_example = new StreamProcessor(\"stream-processor-sample-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(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\", \"__testLog\")\n ))\n )\n )))\n .state(\"CREATED\")\n .build());\n\n var stream_processor_cluster_example = new StreamProcessor(\"stream-processor-cluster-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(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\", \"__testLog\")\n ))\n )\n )))\n .state(\"STARTED\")\n .build());\n\n var stream_processor_kafka_example = new StreamProcessor(\"stream-processor-kafka-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .processorName(\"kafkaProcessorName\")\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\", \"example_topic\")\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 = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .build());\n\n final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .processorName(stream_processor_sample_example.processorName())\n .build());\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 cloud_provider: AWS\n example-sample:\n type: mongodbatlas:StreamConnection\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n connectionName: sample_stream_solar\n type: Sample\n example-cluster:\n type: mongodbatlas:StreamConnection\n properties:\n projectId: ${projectId}\n instanceName: ${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 instanceName: ${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: PLAINTEXT\n stream-processor-sample-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: sampleProcessorName\n pipeline:\n fn::toJSON:\n - $source:\n connectionName: ${mongodbatlasStreamConnection\"example-sample\"[%!s(MISSING)].connectionName}\n - $emit:\n connectionName: __testLog\n state: CREATED\n stream-processor-cluster-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: clusterProcessorName\n pipeline:\n fn::toJSON:\n - $source:\n connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n - $emit:\n connectionName: __testLog\n state: STARTED\n stream-processor-kafka-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: kafkaProcessorName\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: example_topic\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 instanceName: ${example.instanceName}\n example-stream-processor:\n fn::invoke:\n Function: mongodbatlas:getStreamProcessor\n Arguments:\n projectId: ${projectId}\n instanceName: ${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", + "properties": { + "instanceName": { + "type": "string", + "description": "Human-readable label that identifies the stream instance.\n" + }, + "options": { + "$ref": "#/types/mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions", + "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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n" + }, + "processorName": { + "type": "string", + "description": "Human-readable 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\nstart or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is\ncreated without specifying the state, it will default to `CREATED` state. **NOTE** When a stream processor is created,\nthe only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the\nstate is set to STARTED.\n" + }, + "stats": { + "type": "string", + "description": "The stats associated with the stream processor. Refer to the [MongoDB Atlas\nDocs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/manage-stream-processor/#view-statistics-of-a-stream-processor)\nfor more information.\n" + } + }, + "required": [ + "instanceName", + "pipeline", + "processorName", + "projectId", + "state", + "stats" + ], + "inputProperties": { + "instanceName": { + "type": "string", + "description": "Human-readable label that identifies the stream instance.\n" + }, + "options": { + "$ref": "#/types/mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions", + "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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n" + }, + "processorName": { + "type": "string", + "description": "Human-readable 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\nstart or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is\ncreated without specifying the state, it will default to `CREATED` state. **NOTE** When a stream processor is created,\nthe only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the\nstate is set to STARTED.\n" + } + }, + "requiredInputs": [ + "instanceName", + "pipeline", + "processorName", + "projectId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering StreamProcessor resources.\n", + "properties": { + "instanceName": { + "type": "string", + "description": "Human-readable label that identifies the stream instance.\n" + }, + "options": { + "$ref": "#/types/mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions", + "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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n" + }, + "processorName": { + "type": "string", + "description": "Human-readable 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\nstart or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is\ncreated without specifying the state, it will default to `CREATED` state. **NOTE** When a stream processor is created,\nthe only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the\nstate is set to STARTED.\n" + }, + "stats": { + "type": "string", + "description": "The stats associated with the stream processor. Refer to the [MongoDB Atlas\nDocs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/manage-stream-processor/#view-statistics-of-a-stream-processor)\nfor more information.\n" + } + }, + "type": "object" + } + }, "mongodbatlas:index/team:Team": { "description": "## # Resource: mongodbatlas.Team\n\n`mongodbatlas.Team` 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 group_id 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.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/v3/go/mongodbatlas\"\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## 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```\nSee detailed information for arguments and attributes: [MongoDB API Teams](https://docs.atlas.mongodb.com/reference/api/teams-create-one/)\n\n", "properties": { @@ -21732,7 +22389,7 @@ "type": "string" }, "labels": { - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags.", + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags", "description": "Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead.\n", "items": { "$ref": "#/types/mongodbatlas:index/getAdvancedClusterLabel:getAdvancedClusterLabel" @@ -21761,7 +22418,11 @@ "projectId": { "type": "string" }, - "replicationSpecs": { + "replicaSetScalingStrategy": { + "description": "(Optional) Replica set scaling mode for your cluster.\n", + "type": "string" + }, + "replicationSpecs": { "description": "List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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" @@ -21812,6 +22473,7 @@ "paused", "pitEnabled", "projectId", + "replicaSetScalingStrategy", "replicationSpecs", "rootCertType", "stateName", @@ -23500,7 +24162,7 @@ "type": "string" }, "labels": { - "deprecationMessage": "This parameter is deprecated and will be removed by September 2024. Please transition to tags.", + "deprecationMessage": "This parameter is deprecated and will be removed in the future. Please transition to tags", "description": "Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead.\n", "items": { "$ref": "#/types/mongodbatlas:index/getClusterLabel:getClusterLabel" @@ -24374,6 +25036,176 @@ "type": "object" } }, + "mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest": { + "description": "## # Data Source: mongodbatlas.EncryptionAtRest\n\n`mongodbatlas.EncryptionAtRest` 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/atlas/reference/api-resources-spec/#tag/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});\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 })\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 });\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/v3/go/mongodbatlas\"\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})\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 .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(getEncryptionAtRestResult -\u003e getEncryptionAtRestResult).applyValue(test -\u003e test.applyValue(getEncryptionAtRestResult -\u003e getEncryptionAtRestResult.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 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 tenantId: azureTenantId,\n subscriptionId: azureSubscriptionId,\n clientId: azureClientId,\n secret: azureClientSecret,\n resourceGroupName: azureResourceGroupName,\n keyVaultName: azureKeyVaultName,\n keyIdentifier: azureKeyIdentifier,\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 \"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 })\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 TenantId = azureTenantId,\n SubscriptionId = azureSubscriptionId,\n ClientId = azureClientId,\n Secret = azureClientSecret,\n ResourceGroupName = azureResourceGroupName,\n KeyVaultName = azureKeyVaultName,\n KeyIdentifier = azureKeyIdentifier,\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/v3/go/mongodbatlas\"\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\tTenantId: pulumi.Any(azureTenantId),\n\t\t\t\tSubscriptionId: pulumi.Any(azureSubscriptionId),\n\t\t\t\tClientId: pulumi.Any(azureClientId),\n\t\t\t\tSecret: pulumi.Any(azureClientSecret),\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},\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 .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 final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()\n .projectId(testEncryptionAtRest.projectId())\n .build());\n\n ctx.export(\"isAzureEncryptionAtRestValid\", test.applyValue(getEncryptionAtRestResult -\u003e getEncryptionAtRestResult).applyValue(test -\u003e test.applyValue(getEncryptionAtRestResult -\u003e getEncryptionAtRestResult.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 tenantId: ${azureTenantId}\n subscriptionId: ${azureSubscriptionId}\n clientId: ${azureClientId}\n secret: ${azureClientSecret}\n resourceGroupName: ${azureResourceGroupName}\n keyVaultName: ${azureKeyVaultName}\n keyIdentifier: ${azureKeyIdentifier}\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 Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details.\n\n### Configuring encryption at rest using customer key management in GCP\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/v3/go/mongodbatlas\"\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(getEncryptionAtRestResult -\u003e getEncryptionAtRestResult).applyValue(test -\u003e test.applyValue(getEncryptionAtRestResult -\u003e getEncryptionAtRestResult.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" + }, + "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", + "googleCloudKmsConfig", + "id", + "projectId" + ], + "type": "object" + } + }, + "mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint": { + "description": "## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint\n\n`mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys.\n\n\u003e **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. \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## Example Usage\n\n### S\n\n\u003e **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.\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/v3/go/mongodbatlas\"\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.applyValue(getEncryptionAtRestPrivateEndpointResult -\u003e getEncryptionAtRestPrivateEndpointResult.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", + "inputs": { + "description": "A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint.\n", + "properties": { + "cloudProvider": { + "type": "string", + "description": "Label that identifies the cloud provider of the 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 of the 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": "## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints\n\n`mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys.\n\n\u003e **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. \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## Example Usage\n\n### S\n\n\u003e **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.\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/v3/go/mongodbatlas\"\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\", pulumi.Int(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.applyValue(getEncryptionAtRestPrivateEndpointsResult -\u003e getEncryptionAtRestPrivateEndpointsResult.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": "Human-readable label that identifies the cloud provider for the private endpoints to return.\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": "Human-readable label that identifies the cloud provider for the private endpoints to return.\n", + "type": "string" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\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 providers when completing this request.\n", + "items": { + "$ref": "#/types/mongodbatlas:index/getEncryptionAtRestPrivateEndpointsResult:getEncryptionAtRestPrivateEndpointsResult" + }, + "type": "array" + } + }, + "required": [ + "cloudProvider", + "projectId", + "results", + "id" + ], + "type": "object" + } + }, "mongodbatlas:index/getEventTrigger:getEventTrigger": { "description": "## # Data Source: mongodbatlas.EventTrigger\n\n`mongodbatlas.EventTrigger` describes an Event Trigger. \n\n", "inputs": { @@ -26921,7 +27753,8 @@ }, "ipAddresses": { "$ref": "#/types/mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", - "description": "IP addresses in a project categorized by services. See IP Addresses.\n" + "deprecationMessage": "This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source.", + "description": "IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` 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", @@ -27260,6 +28093,45 @@ "type": "object" } }, + "mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses": { + "description": "## # Data Source: mongodbatlas.getProjectIpAddresses\n\n`mongodbatlas.getProjectIpAddresses` 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/v3/go/mongodbatlas\"\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.applyValue(getProjectIpAddressesResult -\u003e getProjectIpAddressesResult.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.\n", + "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/getProjects:getProjects": { "description": "## # Data Source: mongodbatlas.getProjects\n\n`mongodbatlas.getProjects` 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 teams: [\n {\n teamId: \"5e0fa8c99ccf641c722fe645\",\n roleNames: [\"GROUP_OWNER\"],\n },\n {\n teamId: \"5e1dd7b4f2a30ba80a70cd4rw\",\n roleNames: [\n \"GROUP_READ_ONLY\",\n \"GROUP_DATA_ACCESS_READ_WRITE\",\n ],\n },\n ],\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 teams=[\n {\n \"team_id\": \"5e0fa8c99ccf641c722fe645\",\n \"role_names\": [\"GROUP_OWNER\"],\n },\n {\n \"team_id\": \"5e1dd7b4f2a30ba80a70cd4rw\",\n \"role_names\": [\n \"GROUP_READ_ONLY\",\n \"GROUP_DATA_ACCESS_READ_WRITE\",\n ],\n },\n ],\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 Teams = new[]\n {\n new Mongodbatlas.Inputs.ProjectTeamArgs\n {\n TeamId = \"5e0fa8c99ccf641c722fe645\",\n RoleNames = new[]\n {\n \"GROUP_OWNER\",\n },\n },\n new Mongodbatlas.Inputs.ProjectTeamArgs\n {\n TeamId = \"5e1dd7b4f2a30ba80a70cd4rw\",\n RoleNames = new[]\n {\n \"GROUP_READ_ONLY\",\n \"GROUP_DATA_ACCESS_READ_WRITE\",\n },\n },\n },\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/v3/go/mongodbatlas\"\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, nil, 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\tTeams: mongodbatlas.ProjectTeamArray{\n\t\t\t\t\u0026mongodbatlas.ProjectTeamArgs{\n\t\t\t\t\tTeamId: pulumi.String(\"5e0fa8c99ccf641c722fe645\"),\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\t\u0026mongodbatlas.ProjectTeamArgs{\n\t\t\t\t\tTeamId: pulumi.String(\"5e1dd7b4f2a30ba80a70cd4rw\"),\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_DATA_ACCESS_READ_WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\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.ProjectTeamArgs;\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();\n\n var testProject = new Project(\"testProject\", ProjectArgs.builder()\n .name(\"project-name\")\n .orgId(test.applyValue(getRolesOrgIdResult -\u003e getRolesOrgIdResult.orgId()))\n .teams( \n ProjectTeamArgs.builder()\n .teamId(\"5e0fa8c99ccf641c722fe645\")\n .roleNames(\"GROUP_OWNER\")\n .build(),\n ProjectTeamArgs.builder()\n .teamId(\"5e1dd7b4f2a30ba80a70cd4rw\")\n .roleNames( \n \"GROUP_READ_ONLY\",\n \"GROUP_DATA_ACCESS_READ_WRITE\")\n .build())\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 teams:\n - teamId: 5e0fa8c99ccf641c722fe645\n roleNames:\n - GROUP_OWNER\n - teamId: 5e1dd7b4f2a30ba80a70cd4rw\n roleNames:\n - GROUP_READ_ONLY\n - GROUP_DATA_ACCESS_READ_WRITE\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": { @@ -28339,6 +29211,126 @@ "type": "object" } }, + "mongodbatlas:index/getStreamProcessor:getStreamProcessor": { + "description": "## # Data Source: mongodbatlas.StreamProcessor\n\n`mongodbatlas.StreamProcessor` describes a stream processor.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\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 .cloud_provider(\"AWS\")\n .build())\n .build());\n\n var example_sample = new StreamConnection(\"example-sample\", StreamConnectionArgs.builder()\n .projectId(projectId)\n .instanceName(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 .instanceName(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 .instanceName(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(\"PLAINTEXT\")\n .build())\n .build());\n\n var stream_processor_sample_example = new StreamProcessor(\"stream-processor-sample-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(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\", \"__testLog\")\n ))\n )\n )))\n .state(\"CREATED\")\n .build());\n\n var stream_processor_cluster_example = new StreamProcessor(\"stream-processor-cluster-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(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\", \"__testLog\")\n ))\n )\n )))\n .state(\"STARTED\")\n .build());\n\n var stream_processor_kafka_example = new StreamProcessor(\"stream-processor-kafka-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .processorName(\"kafkaProcessorName\")\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\", \"example_topic\")\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 = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .build());\n\n final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .processorName(stream_processor_sample_example.processorName())\n .build());\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 cloud_provider: AWS\n example-sample:\n type: mongodbatlas:StreamConnection\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n connectionName: sample_stream_solar\n type: Sample\n example-cluster:\n type: mongodbatlas:StreamConnection\n properties:\n projectId: ${projectId}\n instanceName: ${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 instanceName: ${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: PLAINTEXT\n stream-processor-sample-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: sampleProcessorName\n pipeline:\n fn::toJSON:\n - $source:\n connectionName: ${mongodbatlasStreamConnection\"example-sample\"[%!s(MISSING)].connectionName}\n - $emit:\n connectionName: __testLog\n state: CREATED\n stream-processor-cluster-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: clusterProcessorName\n pipeline:\n fn::toJSON:\n - $source:\n connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n - $emit:\n connectionName: __testLog\n state: STARTED\n stream-processor-kafka-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: kafkaProcessorName\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: example_topic\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 instanceName: ${example.instanceName}\n example-stream-processor:\n fn::invoke:\n Function: mongodbatlas:getStreamProcessor\n Arguments:\n projectId: ${projectId}\n instanceName: ${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", + "description": "Human-readable label that identifies the stream instance.\n" + }, + "processorName": { + "type": "string", + "description": "Human-readable 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" + } + }, + "type": "object", + "required": [ + "instanceName", + "processorName", + "projectId" + ] + }, + "outputs": { + "description": "A collection of values returned by getStreamProcessor.\n", + "properties": { + "id": { + "type": "string" + }, + "instanceName": { + "description": "Human-readable label that identifies the stream instance.\n", + "type": "string" + }, + "options": { + "$ref": "#/types/mongodbatlas:index/getStreamProcessorOptions:getStreamProcessorOptions" + }, + "pipeline": { + "type": "string" + }, + "processorName": { + "description": "Human-readable 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" + } + }, + "required": [ + "id", + "instanceName", + "options", + "pipeline", + "processorName", + "projectId", + "state", + "stats" + ], + "type": "object" + } + }, + "mongodbatlas:index/getStreamProcessors:getStreamProcessors": { + "description": "## # Data Source: mongodbatlas.getStreamProcessors\n\n`mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\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 .cloud_provider(\"AWS\")\n .build())\n .build());\n\n var example_sample = new StreamConnection(\"example-sample\", StreamConnectionArgs.builder()\n .projectId(projectId)\n .instanceName(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 .instanceName(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 .instanceName(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(\"PLAINTEXT\")\n .build())\n .build());\n\n var stream_processor_sample_example = new StreamProcessor(\"stream-processor-sample-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(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\", \"__testLog\")\n ))\n )\n )))\n .state(\"CREATED\")\n .build());\n\n var stream_processor_cluster_example = new StreamProcessor(\"stream-processor-cluster-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(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\", \"__testLog\")\n ))\n )\n )))\n .state(\"STARTED\")\n .build());\n\n var stream_processor_kafka_example = new StreamProcessor(\"stream-processor-kafka-example\", StreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .processorName(\"kafkaProcessorName\")\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\", \"example_topic\")\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 = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .build());\n\n final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()\n .projectId(projectId)\n .instanceName(example.instanceName())\n .processorName(stream_processor_sample_example.processorName())\n .build());\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 cloud_provider: AWS\n example-sample:\n type: mongodbatlas:StreamConnection\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n connectionName: sample_stream_solar\n type: Sample\n example-cluster:\n type: mongodbatlas:StreamConnection\n properties:\n projectId: ${projectId}\n instanceName: ${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 instanceName: ${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: PLAINTEXT\n stream-processor-sample-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: sampleProcessorName\n pipeline:\n fn::toJSON:\n - $source:\n connectionName: ${mongodbatlasStreamConnection\"example-sample\"[%!s(MISSING)].connectionName}\n - $emit:\n connectionName: __testLog\n state: CREATED\n stream-processor-cluster-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: clusterProcessorName\n pipeline:\n fn::toJSON:\n - $source:\n connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n - $emit:\n connectionName: __testLog\n state: STARTED\n stream-processor-kafka-example:\n type: mongodbatlas:StreamProcessor\n properties:\n projectId: ${projectId}\n instanceName: ${example.instanceName}\n processorName: kafkaProcessorName\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: example_topic\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 instanceName: ${example.instanceName}\n example-stream-processor:\n fn::invoke:\n Function: mongodbatlas:getStreamProcessor\n Arguments:\n projectId: ${projectId}\n instanceName: ${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", + "description": "Human-readable label that identifies the stream instance.\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": [ + "instanceName", + "projectId" + ] + }, + "outputs": { + "description": "A collection of values returned by getStreamProcessors.\n", + "properties": { + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + }, + "instanceName": { + "description": "Human-readable label that identifies the stream instance.\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/getStreamProcessorsResult:getStreamProcessorsResult" + }, + "type": "array" + } + }, + "required": [ + "instanceName", + "projectId", + "results", + "id" + ], + "type": "object" + } + }, "mongodbatlas:index/getTeam:getTeam": { "description": "## # Data Source: mongodbatlas.Team\n\n`mongodbatlas.Team` 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 `group_id` 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/v3/go/mongodbatlas\"\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/v3/go/mongodbatlas\"\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": { diff --git a/provider/go.mod b/provider/go.mod index 94f4cd00..366242e1 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,8 +1,8 @@ module github.com/pulumi/pulumi-mongodbatlas/provider/v3 -go 1.22 +go 1.23 -toolchain go1.22.1 +toolchain go1.23.1 replace github.com/mongodb/terraform-provider-mongodbatlas/shim => ./shim @@ -117,7 +117,7 @@ require ( github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.21.0 // indirect + github.com/hashicorp/hcl/v2 v2.22.0 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-plugin-framework v1.11.0 // indirect @@ -159,7 +159,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mongodb-forks/digest v1.1.0 // indirect - github.com/mongodb/terraform-provider-mongodbatlas v1.18.1 // indirect + github.com/mongodb/terraform-provider-mongodbatlas v1.19.0 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect @@ -217,9 +217,9 @@ require ( github.com/yuin/goldmark v1.7.4 // indirect github.com/zclconf/go-cty v1.15.0 // indirect github.com/zclconf/go-cty-yaml v1.0.2 // indirect - go.mongodb.org/atlas v0.36.0 // indirect + go.mongodb.org/atlas v0.37.0 // indirect go.mongodb.org/atlas-sdk/v20240530005 v20240530005.0.0 // indirect - go.mongodb.org/atlas-sdk/v20240805001 v20240805001.0.0 // indirect + go.mongodb.org/atlas-sdk/v20240805003 v20240805003.2.0 // indirect go.mongodb.org/realm v0.1.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index 1bb25790..c7d05b61 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1663,8 +1663,8 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.8.2/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY= github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= -github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= -github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= +github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= +github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= @@ -1863,8 +1863,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mongodb-forks/digest v1.1.0 h1:7eUdsR1BtqLv0mdNm4OXs6ddWvR4X2/OsLwdKksrOoc= github.com/mongodb-forks/digest v1.1.0/go.mod h1:rb+EX8zotClD5Dj4NdgxnJXG9nwrlx3NWKJ8xttz1Dg= -github.com/mongodb/terraform-provider-mongodbatlas v1.18.1 h1:LJV4Ze8tU05LR4FRGICiCViH13tIg43lKh0RZggGjWM= -github.com/mongodb/terraform-provider-mongodbatlas v1.18.1/go.mod h1:0NV1vN+w2FH4adHFrjGIwMDYqDCiFgqzHMqjbJiVaVc= +github.com/mongodb/terraform-provider-mongodbatlas v1.19.0 h1:51HYM5AlnU2Jn/mmmgBC8o6q0m9PGzIHzDaiFT3XwpY= +github.com/mongodb/terraform-provider-mongodbatlas v1.19.0/go.mod h1:uPEuTp5Gf4SD2eRbCRFnlt9Bbe8bjO0/tqj99NnIj38= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= @@ -2130,12 +2130,12 @@ github.com/zclconf/go-cty-yaml v1.0.2/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgK github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.mongodb.org/atlas v0.12.0/go.mod h1:wVCnHcm/7/IfTjEB6K8K35PLG70yGz8BdkRwX0oK9/M= -go.mongodb.org/atlas v0.36.0 h1:m05S3AO7zkl+bcG1qaNsEKBnAqnKx2FDwLooHpIG3j4= -go.mongodb.org/atlas v0.36.0/go.mod h1:nfPldE9dSama6G2IbIzmEza02Ly7yFZjMMVscaM0uEc= +go.mongodb.org/atlas v0.37.0 h1:zQnO1o5+bVP9IotpAYpres4UjMD2F4nwNEFTZhNL4ck= +go.mongodb.org/atlas v0.37.0/go.mod h1:DJYtM+vsEpPEMSkQzJnFHrT0sP7ev6cseZc/GGjJYG8= go.mongodb.org/atlas-sdk/v20240530005 v20240530005.0.0 h1:d/gbYJ+obR0EM/3DZf7+ZMi2QWISegm3mid7Or708cc= go.mongodb.org/atlas-sdk/v20240530005 v20240530005.0.0/go.mod h1:O47ZrMMfcWb31wznNIq2PQkkdoFoK0ea2GlmRqGJC2s= -go.mongodb.org/atlas-sdk/v20240805001 v20240805001.0.0 h1:EwA2g7i4JYc0b/oE7zvvOH+POYVrHrWR7BONex3MFTA= -go.mongodb.org/atlas-sdk/v20240805001 v20240805001.0.0/go.mod h1:0aHEphVfsYbpg3CiEUcXeAU7OVoOFig1tltXdLjYiSQ= +go.mongodb.org/atlas-sdk/v20240805003 v20240805003.2.0 h1:NWnH4heVNFP6Y2QvBDfcPRk6x/HpDTAw/3diVHdmtJk= +go.mongodb.org/atlas-sdk/v20240805003 v20240805003.2.0/go.mod h1:CVDolHhHTrXPPqig+7KKTPu54tIVqsrtmQm4LssNcZ0= go.mongodb.org/realm v0.1.0 h1:zJiXyLaZrznQ+Pz947ziSrDKUep39DO4SfA0Fzx8M4M= go.mongodb.org/realm v0.1.0/go.mod h1:4Vj6iy+Puo1TDERcoh4XZ+pjtwbOzPpzqy3Cwe8ZmDM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= diff --git a/provider/shim/go.mod b/provider/shim/go.mod index d0187290..26b8d5cf 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -1,13 +1,13 @@ module github.com/mongodb/terraform-provider-mongodbatlas/internal/shim -go 1.22 +go 1.23 -toolchain go1.22.1 +toolchain go1.23.1 require ( github.com/hashicorp/terraform-plugin-framework v1.10.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 - github.com/mongodb/terraform-provider-mongodbatlas v1.18.1 + github.com/mongodb/terraform-provider-mongodbatlas v1.19.0 ) require ( @@ -48,7 +48,7 @@ require ( github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect - github.com/hashicorp/hcl/v2 v2.21.0 // indirect + github.com/hashicorp/hcl/v2 v2.22.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect @@ -84,9 +84,9 @@ require ( github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/zclconf/go-cty v1.15.0 // indirect github.com/zclconf/go-cty-yaml v1.0.2 // indirect - go.mongodb.org/atlas v0.36.0 // indirect + go.mongodb.org/atlas v0.37.0 // indirect go.mongodb.org/atlas-sdk/v20240530005 v20240530005.0.0 // indirect - go.mongodb.org/atlas-sdk/v20240805001 v20240805001.0.0 // indirect + go.mongodb.org/atlas-sdk/v20240805003 v20240805003.2.0 // indirect go.mongodb.org/realm v0.1.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect diff --git a/provider/shim/go.sum b/provider/shim/go.sum index be750760..72fbae42 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -457,8 +457,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.8.2/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY= -github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= -github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= +github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= +github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7 h1:Pc5TCv9mbxFN6UVX0LH6CpQrdTM5YjbVI2w15237Pjk= @@ -580,8 +580,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mongodb-forks/digest v1.1.0 h1:7eUdsR1BtqLv0mdNm4OXs6ddWvR4X2/OsLwdKksrOoc= github.com/mongodb-forks/digest v1.1.0/go.mod h1:rb+EX8zotClD5Dj4NdgxnJXG9nwrlx3NWKJ8xttz1Dg= -github.com/mongodb/terraform-provider-mongodbatlas v1.18.1 h1:LJV4Ze8tU05LR4FRGICiCViH13tIg43lKh0RZggGjWM= -github.com/mongodb/terraform-provider-mongodbatlas v1.18.1/go.mod h1:0NV1vN+w2FH4adHFrjGIwMDYqDCiFgqzHMqjbJiVaVc= +github.com/mongodb/terraform-provider-mongodbatlas v1.19.0 h1:51HYM5AlnU2Jn/mmmgBC8o6q0m9PGzIHzDaiFT3XwpY= +github.com/mongodb/terraform-provider-mongodbatlas v1.19.0/go.mod h1:uPEuTp5Gf4SD2eRbCRFnlt9Bbe8bjO0/tqj99NnIj38= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= @@ -667,12 +667,12 @@ github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmB github.com/zclconf/go-cty-yaml v1.0.2 h1:dNyg4QLTrv2IfJpm7Wtxi55ed5gLGOlPrZ6kMd51hY0= github.com/zclconf/go-cty-yaml v1.0.2/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= go.mongodb.org/atlas v0.12.0/go.mod h1:wVCnHcm/7/IfTjEB6K8K35PLG70yGz8BdkRwX0oK9/M= -go.mongodb.org/atlas v0.36.0 h1:m05S3AO7zkl+bcG1qaNsEKBnAqnKx2FDwLooHpIG3j4= -go.mongodb.org/atlas v0.36.0/go.mod h1:nfPldE9dSama6G2IbIzmEza02Ly7yFZjMMVscaM0uEc= +go.mongodb.org/atlas v0.37.0 h1:zQnO1o5+bVP9IotpAYpres4UjMD2F4nwNEFTZhNL4ck= +go.mongodb.org/atlas v0.37.0/go.mod h1:DJYtM+vsEpPEMSkQzJnFHrT0sP7ev6cseZc/GGjJYG8= go.mongodb.org/atlas-sdk/v20240530005 v20240530005.0.0 h1:d/gbYJ+obR0EM/3DZf7+ZMi2QWISegm3mid7Or708cc= go.mongodb.org/atlas-sdk/v20240530005 v20240530005.0.0/go.mod h1:O47ZrMMfcWb31wznNIq2PQkkdoFoK0ea2GlmRqGJC2s= -go.mongodb.org/atlas-sdk/v20240805001 v20240805001.0.0 h1:EwA2g7i4JYc0b/oE7zvvOH+POYVrHrWR7BONex3MFTA= -go.mongodb.org/atlas-sdk/v20240805001 v20240805001.0.0/go.mod h1:0aHEphVfsYbpg3CiEUcXeAU7OVoOFig1tltXdLjYiSQ= +go.mongodb.org/atlas-sdk/v20240805003 v20240805003.2.0 h1:NWnH4heVNFP6Y2QvBDfcPRk6x/HpDTAw/3diVHdmtJk= +go.mongodb.org/atlas-sdk/v20240805003 v20240805003.2.0/go.mod h1:CVDolHhHTrXPPqig+7KKTPu54tIVqsrtmQm4LssNcZ0= go.mongodb.org/realm v0.1.0 h1:zJiXyLaZrznQ+Pz947ziSrDKUep39DO4SfA0Fzx8M4M= go.mongodb.org/realm v0.1.0/go.mod h1:4Vj6iy+Puo1TDERcoh4XZ+pjtwbOzPpzqy3Cwe8ZmDM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= diff --git a/sdk/dotnet/AdvancedCluster.cs b/sdk/dotnet/AdvancedCluster.cs index a8cfca8e..cfa28250 100644 --- a/sdk/dotnet/AdvancedCluster.cs +++ b/sdk/dotnet/AdvancedCluster.cs @@ -599,6 +599,12 @@ public partial class AdvancedCluster : global::Pulumi.CustomResource [Output("projectId")] public Output ProjectId { get; private set; } = null!; + /// + /// 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) + /// + [Output("replicaSetScalingStrategy")] + public Output ReplicaSetScalingStrategy { get; private set; } = null!; + /// /// 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below /// @@ -759,7 +765,7 @@ public sealed class AdvancedClusterArgs : global::Pulumi.ResourceArgs /// /// Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. /// - [Obsolete(@"This parameter is deprecated and will be removed by September 2024. Please transition to tags.")] + [Obsolete(@"This parameter is deprecated and will be removed in the future. Please transition to tags")] public InputList Labels { get => _labels ?? (_labels = new InputList()); @@ -793,6 +799,12 @@ public InputList Labels [Input("projectId", required: true)] public Input ProjectId { get; set; } = null!; + /// + /// 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) + /// + [Input("replicaSetScalingStrategy")] + public Input? ReplicaSetScalingStrategy { get; set; } + [Input("replicationSpecs", required: true)] private InputList? _replicationSpecs; @@ -935,7 +947,7 @@ public InputList ConnectionString /// /// Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. /// - [Obsolete(@"This parameter is deprecated and will be removed by September 2024. Please transition to tags.")] + [Obsolete(@"This parameter is deprecated and will be removed in the future. Please transition to tags")] public InputList Labels { get => _labels ?? (_labels = new InputList()); @@ -975,6 +987,12 @@ public InputList Labels [Input("projectId")] public Input? ProjectId { get; set; } + /// + /// 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) + /// + [Input("replicaSetScalingStrategy")] + public Input? ReplicaSetScalingStrategy { get; set; } + [Input("replicationSpecs")] private InputList? _replicationSpecs; diff --git a/sdk/dotnet/Cluster.cs b/sdk/dotnet/Cluster.cs index f7318516..e0d435e8 100644 --- a/sdk/dotnet/Cluster.cs +++ b/sdk/dotnet/Cluster.cs @@ -774,7 +774,7 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs /// /// Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. /// - [Obsolete(@"This parameter is deprecated and will be removed by September 2024. Please transition to tags.")] + [Obsolete(@"This parameter is deprecated and will be removed in the future. Please transition to tags")] public InputList Labels { get => _labels ?? (_labels = new InputList()); @@ -1055,7 +1055,7 @@ public InputList ConnectionStrings /// /// Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. /// - [Obsolete(@"This parameter is deprecated and will be removed by September 2024. Please transition to tags.")] + [Obsolete(@"This parameter is deprecated and will be removed in the future. Please transition to tags")] public InputList Labels { get => _labels ?? (_labels = new InputList()); diff --git a/sdk/dotnet/EncryptionAtRest.cs b/sdk/dotnet/EncryptionAtRest.cs index ae31503f..e9a2f9b6 100644 --- a/sdk/dotnet/EncryptionAtRest.cs +++ b/sdk/dotnet/EncryptionAtRest.cs @@ -9,30 +9,29 @@ namespace Pulumi.Mongodbatlas { - /// - /// ## Import - /// - /// Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g. - /// - /// ```sh - /// $ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934 - /// ``` - /// For more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management) - /// [MongodbatlasResourceType("mongodbatlas:index/encryptionAtRest:EncryptionAtRest")] public partial class EncryptionAtRest : global::Pulumi.CustomResource { + /// + /// Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + /// [Output("awsKmsConfig")] public Output AwsKmsConfig { get; private set; } = null!; + /// + /// Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + /// [Output("azureKeyVaultConfig")] public Output AzureKeyVaultConfig { get; private set; } = null!; + /// + /// Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + /// [Output("googleCloudKmsConfig")] public Output GoogleCloudKmsConfig { get; private set; } = null!; /// - /// The unique identifier for the project. + /// Unique 24-hexadecimal digit string that identifies your project. /// [Output("projectId")] public Output ProjectId { get; private set; } = null!; @@ -83,17 +82,26 @@ public static EncryptionAtRest Get(string name, Input id, EncryptionAtRe public sealed class EncryptionAtRestArgs : global::Pulumi.ResourceArgs { + /// + /// Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + /// [Input("awsKmsConfig")] public Input? AwsKmsConfig { get; set; } + /// + /// Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + /// [Input("azureKeyVaultConfig")] public Input? AzureKeyVaultConfig { get; set; } + /// + /// Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + /// [Input("googleCloudKmsConfig")] public Input? GoogleCloudKmsConfig { get; set; } /// - /// The unique identifier for the project. + /// Unique 24-hexadecimal digit string that identifies your project. /// [Input("projectId", required: true)] public Input ProjectId { get; set; } = null!; @@ -106,17 +114,26 @@ public EncryptionAtRestArgs() public sealed class EncryptionAtRestState : global::Pulumi.ResourceArgs { + /// + /// Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + /// [Input("awsKmsConfig")] public Input? AwsKmsConfig { get; set; } + /// + /// Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + /// [Input("azureKeyVaultConfig")] public Input? AzureKeyVaultConfig { get; set; } + /// + /// Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + /// [Input("googleCloudKmsConfig")] public Input? GoogleCloudKmsConfig { get; set; } /// - /// The unique identifier for the project. + /// Unique 24-hexadecimal digit string that identifies your project. /// [Input("projectId")] public Input? ProjectId { get; set; } diff --git a/sdk/dotnet/EncryptionAtRestPrivateEndpoint.cs b/sdk/dotnet/EncryptionAtRestPrivateEndpoint.cs new file mode 100644 index 00000000..cbaedf1c --- /dev/null +++ b/sdk/dotnet/EncryptionAtRestPrivateEndpoint.cs @@ -0,0 +1,246 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + /// + /// ## # Resource: mongodbatlas.EncryptionAtRestPrivateEndpoint + /// + /// `mongodbatlas.EncryptionAtRestPrivateEndpoint` 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. + /// + /// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + /// To 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). + /// + /// > **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `mongodbatlas.EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled. + /// + /// > **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. + /// + /// ## Example Usage + /// + /// ### S + /// + /// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + /// + /// ### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link + /// + /// Make sure to reference the complete example section for detailed steps and considerations. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Azapi = Pulumi.Azapi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var ear = new Mongodbatlas.EncryptionAtRest("ear", new() + /// { + /// ProjectId = atlasProjectId, + /// AzureKeyVaultConfig = new Mongodbatlas.Inputs.EncryptionAtRestAzureKeyVaultConfigArgs + /// { + /// RequirePrivateNetworking = true, + /// Enabled = true, + /// AzureEnvironment = "AZURE", + /// TenantId = azureTenantId, + /// SubscriptionId = azureSubscriptionId, + /// ClientId = azureClientId, + /// Secret = azureClientSecret, + /// ResourceGroupName = azureResourceGroupName, + /// KeyVaultName = azureKeyVaultName, + /// KeyIdentifier = azureKeyIdentifier, + /// }, + /// }); + /// + /// // Creates private endpoint + /// var endpoint = new Mongodbatlas.EncryptionAtRestPrivateEndpoint("endpoint", new() + /// { + /// ProjectId = ear.ProjectId, + /// CloudProvider = "AZURE", + /// RegionName = azureRegionName, + /// }); + /// + /// var keyVaultResourceId = $"/subscriptions/{azureSubscriptionId}/resourceGroups/{azureResourceGroupName}/providers/Microsoft.KeyVault/vaults/{azureKeyVaultName}"; + /// + /// // Approves private endpoint connection from Azure Key Vault + /// var approval = new Azapi.Index.UpdateResource("approval", new() + /// { + /// Type = "Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01", + /// Name = endpoint.PrivateEndpointConnectionName, + /// ParentId = keyVaultResourceId, + /// Body = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["properties"] = new Dictionary<string, object?> + /// { + /// ["privateLinkServiceConnectionState"] = new Dictionary<string, object?> + /// { + /// ["description"] = "Approved via Terraform", + /// ["status"] = "Approved", + /// }, + /// }, + /// }), + /// }); + /// + /// }); + /// ``` + /// + [MongodbatlasResourceType("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint")] + public partial class EncryptionAtRestPrivateEndpoint : global::Pulumi.CustomResource + { + /// + /// Label that identifies the cloud provider for the Encryption At Rest private endpoint. + /// + [Output("cloudProvider")] + public Output CloudProvider { get; private set; } = null!; + + /// + /// Error message for failures associated with the Encryption At Rest private endpoint. + /// + [Output("errorMessage")] + public Output ErrorMessage { get; private set; } = null!; + + /// + /// Connection name of the Azure Private Endpoint. + /// + [Output("privateEndpointConnectionName")] + public Output PrivateEndpointConnectionName { get; private set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// Cloud provider region in which the Encryption At Rest private endpoint is located. + /// + [Output("regionName")] + public Output RegionName { get; private set; } = null!; + + /// + /// State of the Encryption At Rest private endpoint. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a EncryptionAtRestPrivateEndpoint resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public EncryptionAtRestPrivateEndpoint(string name, EncryptionAtRestPrivateEndpointArgs args, CustomResourceOptions? options = null) + : base("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", name, args ?? new EncryptionAtRestPrivateEndpointArgs(), MakeResourceOptions(options, "")) + { + } + + private EncryptionAtRestPrivateEndpoint(string name, Input id, EncryptionAtRestPrivateEndpointState? state = null, CustomResourceOptions? options = null) + : base("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing EncryptionAtRestPrivateEndpoint resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static EncryptionAtRestPrivateEndpoint Get(string name, Input id, EncryptionAtRestPrivateEndpointState? state = null, CustomResourceOptions? options = null) + { + return new EncryptionAtRestPrivateEndpoint(name, id, state, options); + } + } + + public sealed class EncryptionAtRestPrivateEndpointArgs : global::Pulumi.ResourceArgs + { + /// + /// Label that identifies the cloud provider for the Encryption At Rest private endpoint. + /// + [Input("cloudProvider", required: true)] + public Input CloudProvider { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// Cloud provider region in which the Encryption At Rest private endpoint is located. + /// + [Input("regionName", required: true)] + public Input RegionName { get; set; } = null!; + + public EncryptionAtRestPrivateEndpointArgs() + { + } + public static new EncryptionAtRestPrivateEndpointArgs Empty => new EncryptionAtRestPrivateEndpointArgs(); + } + + public sealed class EncryptionAtRestPrivateEndpointState : global::Pulumi.ResourceArgs + { + /// + /// Label that identifies the cloud provider for the Encryption At Rest private endpoint. + /// + [Input("cloudProvider")] + public Input? CloudProvider { get; set; } + + /// + /// Error message for failures associated with the Encryption At Rest private endpoint. + /// + [Input("errorMessage")] + public Input? ErrorMessage { get; set; } + + /// + /// Connection name of the Azure Private Endpoint. + /// + [Input("privateEndpointConnectionName")] + public Input? PrivateEndpointConnectionName { get; set; } + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// Cloud provider region in which the Encryption At Rest private endpoint is located. + /// + [Input("regionName")] + public Input? RegionName { get; set; } + + /// + /// State of the Encryption At Rest private endpoint. + /// + [Input("status")] + public Input? Status { get; set; } + + public EncryptionAtRestPrivateEndpointState() + { + } + public static new EncryptionAtRestPrivateEndpointState Empty => new EncryptionAtRestPrivateEndpointState(); + } +} diff --git a/sdk/dotnet/GetAdvancedCluster.cs b/sdk/dotnet/GetAdvancedCluster.cs index 14e01802..0b819841 100644 --- a/sdk/dotnet/GetAdvancedCluster.cs +++ b/sdk/dotnet/GetAdvancedCluster.cs @@ -392,6 +392,10 @@ public sealed class GetAdvancedClusterResult public readonly bool PitEnabled; public readonly string ProjectId; /// + /// (Optional) Replica set scaling mode for your cluster. + /// + public readonly string ReplicaSetScalingStrategy; + /// /// List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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. /// public readonly ImmutableArray ReplicationSpecs; @@ -453,6 +457,8 @@ private GetAdvancedClusterResult( string projectId, + string replicaSetScalingStrategy, + ImmutableArray replicationSpecs, string rootCertType, @@ -484,6 +490,7 @@ private GetAdvancedClusterResult( Paused = paused; PitEnabled = pitEnabled; ProjectId = projectId; + ReplicaSetScalingStrategy = replicaSetScalingStrategy; ReplicationSpecs = replicationSpecs; RootCertType = rootCertType; StateName = stateName; diff --git a/sdk/dotnet/GetEncryptionAtRest.cs b/sdk/dotnet/GetEncryptionAtRest.cs new file mode 100644 index 00000000..e2352d5f --- /dev/null +++ b/sdk/dotnet/GetEncryptionAtRest.cs @@ -0,0 +1,436 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + public static class GetEncryptionAtRest + { + /// + /// ## # Data Source: mongodbatlas.EncryptionAtRest + /// + /// `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + /// + /// [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + /// [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + /// [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + /// + /// + /// > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + /// + /// > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + /// + /// > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + /// + /// + /// ## Example Usage + /// + /// ### S + /// + /// ### Configuring encryption at rest using customer key management in AWS + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var setupOnly = new Mongodbatlas.CloudProviderAccessSetup("setup_only", new() + /// { + /// ProjectId = atlasProjectId, + /// ProviderName = "AWS", + /// }); + /// + /// var authRole = new Mongodbatlas.CloudProviderAccessAuthorization("auth_role", new() + /// { + /// ProjectId = atlasProjectId, + /// RoleId = setupOnly.RoleId, + /// Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs + /// { + /// IamAssumedRoleArn = testRole.Arn, + /// }, + /// }); + /// + /// var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest("test", new() + /// { + /// ProjectId = atlasProjectId, + /// AwsKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestAwsKmsConfigArgs + /// { + /// Enabled = true, + /// CustomerMasterKeyId = kmsKey.Id, + /// Region = atlasRegion, + /// RoleId = authRole.RoleId, + /// }, + /// }); + /// + /// var cluster = new Mongodbatlas.AdvancedCluster("cluster", new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// Name = "MyCluster", + /// ClusterType = "REPLICASET", + /// BackupEnabled = true, + /// EncryptionAtRestProvider = "AWS", + /// ReplicationSpecs = new[] + /// { + /// new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs + /// { + /// RegionConfigs = new[] + /// { + /// new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs + /// { + /// Priority = 7, + /// ProviderName = "AWS", + /// RegionName = "US_EAST_1", + /// ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs + /// { + /// InstanceSize = "M10", + /// NodeCount = 3, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["isAwsKmsEncryptionAtRestValid"] = test.Apply(getEncryptionAtRestResult => getEncryptionAtRestResult.AwsKmsConfig?.Valid), + /// }; + /// }); + /// ``` + /// + /// ### Configuring encryption at rest using customer key management in Azure + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest("test", new() + /// { + /// ProjectId = atlasProjectId, + /// AzureKeyVaultConfig = new Mongodbatlas.Inputs.EncryptionAtRestAzureKeyVaultConfigArgs + /// { + /// Enabled = true, + /// AzureEnvironment = "AZURE", + /// TenantId = azureTenantId, + /// SubscriptionId = azureSubscriptionId, + /// ClientId = azureClientId, + /// Secret = azureClientSecret, + /// ResourceGroupName = azureResourceGroupName, + /// KeyVaultName = azureKeyVaultName, + /// KeyIdentifier = azureKeyIdentifier, + /// }, + /// }); + /// + /// var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["isAzureEncryptionAtRestValid"] = test.Apply(getEncryptionAtRestResult => getEncryptionAtRestResult.AzureKeyVaultConfig?.Valid), + /// }; + /// }); + /// ``` + /// + /// > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. + /// + /// ### Configuring encryption at rest using customer key management in GCP + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest("test", new() + /// { + /// ProjectId = atlasProjectId, + /// GoogleCloudKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestGoogleCloudKmsConfigArgs + /// { + /// Enabled = true, + /// 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\"}", + /// KeyVersionResourceId = "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1", + /// }, + /// }); + /// + /// var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["isGcpEncryptionAtRestValid"] = test.Apply(getEncryptionAtRestResult => getEncryptionAtRestResult.GoogleCloudKmsConfig?.Valid), + /// }; + /// }); + /// ``` + /// + public static Task InvokeAsync(GetEncryptionAtRestArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", args ?? new GetEncryptionAtRestArgs(), options.WithDefaults()); + + /// + /// ## # Data Source: mongodbatlas.EncryptionAtRest + /// + /// `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + /// + /// [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + /// [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + /// [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + /// + /// + /// > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + /// + /// > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + /// + /// > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + /// + /// + /// ## Example Usage + /// + /// ### S + /// + /// ### Configuring encryption at rest using customer key management in AWS + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var setupOnly = new Mongodbatlas.CloudProviderAccessSetup("setup_only", new() + /// { + /// ProjectId = atlasProjectId, + /// ProviderName = "AWS", + /// }); + /// + /// var authRole = new Mongodbatlas.CloudProviderAccessAuthorization("auth_role", new() + /// { + /// ProjectId = atlasProjectId, + /// RoleId = setupOnly.RoleId, + /// Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs + /// { + /// IamAssumedRoleArn = testRole.Arn, + /// }, + /// }); + /// + /// var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest("test", new() + /// { + /// ProjectId = atlasProjectId, + /// AwsKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestAwsKmsConfigArgs + /// { + /// Enabled = true, + /// CustomerMasterKeyId = kmsKey.Id, + /// Region = atlasRegion, + /// RoleId = authRole.RoleId, + /// }, + /// }); + /// + /// var cluster = new Mongodbatlas.AdvancedCluster("cluster", new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// Name = "MyCluster", + /// ClusterType = "REPLICASET", + /// BackupEnabled = true, + /// EncryptionAtRestProvider = "AWS", + /// ReplicationSpecs = new[] + /// { + /// new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs + /// { + /// RegionConfigs = new[] + /// { + /// new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs + /// { + /// Priority = 7, + /// ProviderName = "AWS", + /// RegionName = "US_EAST_1", + /// ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs + /// { + /// InstanceSize = "M10", + /// NodeCount = 3, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["isAwsKmsEncryptionAtRestValid"] = test.Apply(getEncryptionAtRestResult => getEncryptionAtRestResult.AwsKmsConfig?.Valid), + /// }; + /// }); + /// ``` + /// + /// ### Configuring encryption at rest using customer key management in Azure + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest("test", new() + /// { + /// ProjectId = atlasProjectId, + /// AzureKeyVaultConfig = new Mongodbatlas.Inputs.EncryptionAtRestAzureKeyVaultConfigArgs + /// { + /// Enabled = true, + /// AzureEnvironment = "AZURE", + /// TenantId = azureTenantId, + /// SubscriptionId = azureSubscriptionId, + /// ClientId = azureClientId, + /// Secret = azureClientSecret, + /// ResourceGroupName = azureResourceGroupName, + /// KeyVaultName = azureKeyVaultName, + /// KeyIdentifier = azureKeyIdentifier, + /// }, + /// }); + /// + /// var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["isAzureEncryptionAtRestValid"] = test.Apply(getEncryptionAtRestResult => getEncryptionAtRestResult.AzureKeyVaultConfig?.Valid), + /// }; + /// }); + /// ``` + /// + /// > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. + /// + /// ### Configuring encryption at rest using customer key management in GCP + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest("test", new() + /// { + /// ProjectId = atlasProjectId, + /// GoogleCloudKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestGoogleCloudKmsConfigArgs + /// { + /// Enabled = true, + /// 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\"}", + /// KeyVersionResourceId = "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1", + /// }, + /// }); + /// + /// var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new() + /// { + /// ProjectId = testEncryptionAtRest.ProjectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["isGcpEncryptionAtRestValid"] = test.Apply(getEncryptionAtRestResult => getEncryptionAtRestResult.GoogleCloudKmsConfig?.Valid), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetEncryptionAtRestInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", args ?? new GetEncryptionAtRestInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetEncryptionAtRestArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + public GetEncryptionAtRestArgs() + { + } + public static new GetEncryptionAtRestArgs Empty => new GetEncryptionAtRestArgs(); + } + + public sealed class GetEncryptionAtRestInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public GetEncryptionAtRestInvokeArgs() + { + } + public static new GetEncryptionAtRestInvokeArgs Empty => new GetEncryptionAtRestInvokeArgs(); + } + + + [OutputType] + public sealed class GetEncryptionAtRestResult + { + /// + /// Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + /// + public readonly Outputs.GetEncryptionAtRestAwsKmsConfigResult AwsKmsConfig; + /// + /// Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + /// + public readonly Outputs.GetEncryptionAtRestAzureKeyVaultConfigResult AzureKeyVaultConfig; + /// + /// Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + /// + public readonly Outputs.GetEncryptionAtRestGoogleCloudKmsConfigResult GoogleCloudKmsConfig; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + public readonly string ProjectId; + + [OutputConstructor] + private GetEncryptionAtRestResult( + Outputs.GetEncryptionAtRestAwsKmsConfigResult awsKmsConfig, + + Outputs.GetEncryptionAtRestAzureKeyVaultConfigResult azureKeyVaultConfig, + + Outputs.GetEncryptionAtRestGoogleCloudKmsConfigResult googleCloudKmsConfig, + + string id, + + string projectId) + { + AwsKmsConfig = awsKmsConfig; + AzureKeyVaultConfig = azureKeyVaultConfig; + GoogleCloudKmsConfig = googleCloudKmsConfig; + Id = id; + ProjectId = projectId; + } + } +} diff --git a/sdk/dotnet/GetEncryptionAtRestPrivateEndpoint.cs b/sdk/dotnet/GetEncryptionAtRestPrivateEndpoint.cs new file mode 100644 index 00000000..c859a5ee --- /dev/null +++ b/sdk/dotnet/GetEncryptionAtRestPrivateEndpoint.cs @@ -0,0 +1,204 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + public static class GetEncryptionAtRestPrivateEndpoint + { + /// + /// ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint + /// + /// `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. + /// + /// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + /// To 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). + /// + /// ## Example Usage + /// + /// ### S + /// + /// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var single = Mongodbatlas.GetEncryptionAtRestPrivateEndpoint.Invoke(new() + /// { + /// ProjectId = atlasProjectId, + /// CloudProvider = "AZURE", + /// Id = endpoint.Id, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["endpointConnectionName"] = single.Apply(getEncryptionAtRestPrivateEndpointResult => getEncryptionAtRestPrivateEndpointResult.PrivateEndpointConnectionName), + /// }; + /// }); + /// ``` + /// + public static Task InvokeAsync(GetEncryptionAtRestPrivateEndpointArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", args ?? new GetEncryptionAtRestPrivateEndpointArgs(), options.WithDefaults()); + + /// + /// ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint + /// + /// `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. + /// + /// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + /// To 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). + /// + /// ## Example Usage + /// + /// ### S + /// + /// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var single = Mongodbatlas.GetEncryptionAtRestPrivateEndpoint.Invoke(new() + /// { + /// ProjectId = atlasProjectId, + /// CloudProvider = "AZURE", + /// Id = endpoint.Id, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["endpointConnectionName"] = single.Apply(getEncryptionAtRestPrivateEndpointResult => getEncryptionAtRestPrivateEndpointResult.PrivateEndpointConnectionName), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetEncryptionAtRestPrivateEndpointInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", args ?? new GetEncryptionAtRestPrivateEndpointInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetEncryptionAtRestPrivateEndpointArgs : global::Pulumi.InvokeArgs + { + /// + /// Label that identifies the cloud provider of the private endpoint. + /// + [Input("cloudProvider", required: true)] + public string CloudProvider { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + public GetEncryptionAtRestPrivateEndpointArgs() + { + } + public static new GetEncryptionAtRestPrivateEndpointArgs Empty => new GetEncryptionAtRestPrivateEndpointArgs(); + } + + public sealed class GetEncryptionAtRestPrivateEndpointInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Label that identifies the cloud provider of the private endpoint. + /// + [Input("cloudProvider", required: true)] + public Input CloudProvider { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public GetEncryptionAtRestPrivateEndpointInvokeArgs() + { + } + public static new GetEncryptionAtRestPrivateEndpointInvokeArgs Empty => new GetEncryptionAtRestPrivateEndpointInvokeArgs(); + } + + + [OutputType] + public sealed class GetEncryptionAtRestPrivateEndpointResult + { + /// + /// Label that identifies the cloud provider of the private endpoint. + /// + public readonly string CloudProvider; + /// + /// Error message for failures associated with the Encryption At Rest private endpoint. + /// + public readonly string ErrorMessage; + /// + /// Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + /// + public readonly string Id; + /// + /// Connection name of the Azure Private Endpoint. + /// + public readonly string PrivateEndpointConnectionName; + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + public readonly string ProjectId; + /// + /// Cloud provider region in which the Encryption At Rest private endpoint is located. + /// + public readonly string RegionName; + /// + /// State of the Encryption At Rest private endpoint. + /// + public readonly string Status; + + [OutputConstructor] + private GetEncryptionAtRestPrivateEndpointResult( + string cloudProvider, + + string errorMessage, + + string id, + + string privateEndpointConnectionName, + + string projectId, + + string regionName, + + string status) + { + CloudProvider = cloudProvider; + ErrorMessage = errorMessage; + Id = id; + PrivateEndpointConnectionName = privateEndpointConnectionName; + ProjectId = projectId; + RegionName = regionName; + Status = status; + } + } +} diff --git a/sdk/dotnet/GetEncryptionAtRestPrivateEndpoints.cs b/sdk/dotnet/GetEncryptionAtRestPrivateEndpoints.cs new file mode 100644 index 00000000..7520c2da --- /dev/null +++ b/sdk/dotnet/GetEncryptionAtRestPrivateEndpoints.cs @@ -0,0 +1,169 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + public static class GetEncryptionAtRestPrivateEndpoints + { + /// + /// ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints + /// + /// `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. + /// + /// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + /// To 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). + /// + /// ## Example Usage + /// + /// ### S + /// + /// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var plural = Mongodbatlas.GetEncryptionAtRestPrivateEndpoints.Invoke(new() + /// { + /// ProjectId = atlasProjectId, + /// CloudProvider = "AZURE", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["numberOfEndpoints"] = plural.Apply(getEncryptionAtRestPrivateEndpointsResult => getEncryptionAtRestPrivateEndpointsResult.Results).Length, + /// }; + /// }); + /// ``` + /// + public static Task InvokeAsync(GetEncryptionAtRestPrivateEndpointsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", args ?? new GetEncryptionAtRestPrivateEndpointsArgs(), options.WithDefaults()); + + /// + /// ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints + /// + /// `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. + /// + /// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + /// To 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). + /// + /// ## Example Usage + /// + /// ### S + /// + /// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var plural = Mongodbatlas.GetEncryptionAtRestPrivateEndpoints.Invoke(new() + /// { + /// ProjectId = atlasProjectId, + /// CloudProvider = "AZURE", + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["numberOfEndpoints"] = plural.Apply(getEncryptionAtRestPrivateEndpointsResult => getEncryptionAtRestPrivateEndpointsResult.Results).Length, + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetEncryptionAtRestPrivateEndpointsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", args ?? new GetEncryptionAtRestPrivateEndpointsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetEncryptionAtRestPrivateEndpointsArgs : global::Pulumi.InvokeArgs + { + /// + /// Human-readable label that identifies the cloud provider for the private endpoints to return. + /// + [Input("cloudProvider", required: true)] + public string CloudProvider { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + public GetEncryptionAtRestPrivateEndpointsArgs() + { + } + public static new GetEncryptionAtRestPrivateEndpointsArgs Empty => new GetEncryptionAtRestPrivateEndpointsArgs(); + } + + public sealed class GetEncryptionAtRestPrivateEndpointsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Human-readable label that identifies the cloud provider for the private endpoints to return. + /// + [Input("cloudProvider", required: true)] + public Input CloudProvider { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public GetEncryptionAtRestPrivateEndpointsInvokeArgs() + { + } + public static new GetEncryptionAtRestPrivateEndpointsInvokeArgs Empty => new GetEncryptionAtRestPrivateEndpointsInvokeArgs(); + } + + + [OutputType] + public sealed class GetEncryptionAtRestPrivateEndpointsResult + { + /// + /// Human-readable label that identifies the cloud provider for the private endpoints to return. + /// + public readonly string CloudProvider; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + public readonly string ProjectId; + /// + /// List of returned documents that MongoDB Cloud providers when completing this request. + /// + public readonly ImmutableArray Results; + + [OutputConstructor] + private GetEncryptionAtRestPrivateEndpointsResult( + string cloudProvider, + + string id, + + string projectId, + + ImmutableArray results) + { + CloudProvider = cloudProvider; + Id = id; + ProjectId = projectId; + Results = results; + } + } +} diff --git a/sdk/dotnet/GetProject.cs b/sdk/dotnet/GetProject.cs index 987a7501..1a80ecb3 100644 --- a/sdk/dotnet/GetProject.cs +++ b/sdk/dotnet/GetProject.cs @@ -303,7 +303,7 @@ public sealed class GetProjectResult public readonly string Created; public readonly string Id; /// - /// IP addresses in a project categorized by services. See IP Addresses. + /// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. /// public readonly Outputs.GetProjectIpAddressesResult IpAddresses; /// diff --git a/sdk/dotnet/GetProjectIpAddresses.cs b/sdk/dotnet/GetProjectIpAddresses.cs new file mode 100644 index 00000000..0366ebae --- /dev/null +++ b/sdk/dotnet/GetProjectIpAddresses.cs @@ -0,0 +1,136 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + public static class GetProjectIpAddresses + { + /// + /// ## # Data Source: mongodbatlas.getProjectIpAddresses + /// + /// `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + /// + /// ## Example Usage + /// + /// ### S + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Mongodbatlas.GetProjectIpAddresses.Invoke(new() + /// { + /// ProjectId = projectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["projectServices"] = test.Apply(getProjectIpAddressesResult => getProjectIpAddressesResult.Services), + /// }; + /// }); + /// ``` + /// + public static Task InvokeAsync(GetProjectIpAddressesArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", args ?? new GetProjectIpAddressesArgs(), options.WithDefaults()); + + /// + /// ## # Data Source: mongodbatlas.getProjectIpAddresses + /// + /// `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + /// + /// ## Example Usage + /// + /// ### S + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Mongodbatlas = Pulumi.Mongodbatlas; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Mongodbatlas.GetProjectIpAddresses.Invoke(new() + /// { + /// ProjectId = projectId, + /// }); + /// + /// return new Dictionary<string, object?> + /// { + /// ["projectServices"] = test.Apply(getProjectIpAddressesResult => getProjectIpAddressesResult.Services), + /// }; + /// }); + /// ``` + /// + public static Output Invoke(GetProjectIpAddressesInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", args ?? new GetProjectIpAddressesInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetProjectIpAddressesArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + public GetProjectIpAddressesArgs() + { + } + public static new GetProjectIpAddressesArgs Empty => new GetProjectIpAddressesArgs(); + } + + public sealed class GetProjectIpAddressesInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public GetProjectIpAddressesInvokeArgs() + { + } + public static new GetProjectIpAddressesInvokeArgs Empty => new GetProjectIpAddressesInvokeArgs(); + } + + + [OutputType] + public sealed class GetProjectIpAddressesResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + public readonly string ProjectId; + /// + /// List of IP addresses in a project categorized by services. + /// + public readonly Outputs.GetProjectIpAddressesServicesResult Services; + + [OutputConstructor] + private GetProjectIpAddressesResult( + string id, + + string projectId, + + Outputs.GetProjectIpAddressesServicesResult services) + { + Id = id; + ProjectId = projectId; + Services = services; + } + } +} diff --git a/sdk/dotnet/GetStreamProcessor.cs b/sdk/dotnet/GetStreamProcessor.cs new file mode 100644 index 00000000..7d84a6a7 --- /dev/null +++ b/sdk/dotnet/GetStreamProcessor.cs @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + public static class GetStreamProcessor + { + /// + /// ## # Data Source: mongodbatlas.StreamProcessor + /// + /// `mongodbatlas.StreamProcessor` describes a stream processor. + /// + /// ## Example Usage + /// + public static Task InvokeAsync(GetStreamProcessorArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("mongodbatlas:index/getStreamProcessor:getStreamProcessor", args ?? new GetStreamProcessorArgs(), options.WithDefaults()); + + /// + /// ## # Data Source: mongodbatlas.StreamProcessor + /// + /// `mongodbatlas.StreamProcessor` describes a stream processor. + /// + /// ## Example Usage + /// + public static Output Invoke(GetStreamProcessorInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("mongodbatlas:index/getStreamProcessor:getStreamProcessor", args ?? new GetStreamProcessorInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetStreamProcessorArgs : global::Pulumi.InvokeArgs + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Input("instanceName", required: true)] + public string InstanceName { get; set; } = null!; + + /// + /// Human-readable label that identifies the stream processor. + /// + [Input("processorName", required: true)] + public string ProcessorName { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + public GetStreamProcessorArgs() + { + } + public static new GetStreamProcessorArgs Empty => new GetStreamProcessorArgs(); + } + + public sealed class GetStreamProcessorInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Input("instanceName", required: true)] + public Input InstanceName { get; set; } = null!; + + /// + /// Human-readable label that identifies the stream processor. + /// + [Input("processorName", required: true)] + public Input ProcessorName { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public GetStreamProcessorInvokeArgs() + { + } + public static new GetStreamProcessorInvokeArgs Empty => new GetStreamProcessorInvokeArgs(); + } + + + [OutputType] + public sealed class GetStreamProcessorResult + { + public readonly string Id; + /// + /// Human-readable label that identifies the stream instance. + /// + public readonly string InstanceName; + public readonly Outputs.GetStreamProcessorOptionsResult Options; + public readonly string Pipeline; + /// + /// Human-readable label that identifies the stream processor. + /// + public readonly string ProcessorName; + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + public readonly string ProjectId; + public readonly string State; + public readonly string Stats; + + [OutputConstructor] + private GetStreamProcessorResult( + string id, + + string instanceName, + + Outputs.GetStreamProcessorOptionsResult options, + + string pipeline, + + string processorName, + + string projectId, + + string state, + + string stats) + { + Id = id; + InstanceName = instanceName; + Options = options; + Pipeline = pipeline; + ProcessorName = processorName; + ProjectId = projectId; + State = state; + Stats = stats; + } + } +} diff --git a/sdk/dotnet/GetStreamProcessors.cs b/sdk/dotnet/GetStreamProcessors.cs new file mode 100644 index 00000000..f7454b0c --- /dev/null +++ b/sdk/dotnet/GetStreamProcessors.cs @@ -0,0 +1,110 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + public static class GetStreamProcessors + { + /// + /// ## # Data Source: mongodbatlas.getStreamProcessors + /// + /// `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance. + /// + /// ## Example Usage + /// + public static Task InvokeAsync(GetStreamProcessorsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("mongodbatlas:index/getStreamProcessors:getStreamProcessors", args ?? new GetStreamProcessorsArgs(), options.WithDefaults()); + + /// + /// ## # Data Source: mongodbatlas.getStreamProcessors + /// + /// `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance. + /// + /// ## Example Usage + /// + public static Output Invoke(GetStreamProcessorsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("mongodbatlas:index/getStreamProcessors:getStreamProcessors", args ?? new GetStreamProcessorsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetStreamProcessorsArgs : global::Pulumi.InvokeArgs + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Input("instanceName", required: true)] + public string InstanceName { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + public GetStreamProcessorsArgs() + { + } + public static new GetStreamProcessorsArgs Empty => new GetStreamProcessorsArgs(); + } + + public sealed class GetStreamProcessorsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Input("instanceName", required: true)] + public Input InstanceName { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public GetStreamProcessorsInvokeArgs() + { + } + public static new GetStreamProcessorsInvokeArgs Empty => new GetStreamProcessorsInvokeArgs(); + } + + + [OutputType] + public sealed class GetStreamProcessorsResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// Human-readable label that identifies the stream instance. + /// + public readonly string InstanceName; + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + public readonly string ProjectId; + public readonly ImmutableArray Results; + + [OutputConstructor] + private GetStreamProcessorsResult( + string id, + + string instanceName, + + string projectId, + + ImmutableArray results) + { + Id = id; + InstanceName = instanceName; + ProjectId = projectId; + Results = results; + } + } +} diff --git a/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationArgs.cs b/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationArgs.cs index a42c2ebe..6b006da1 100644 --- a/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationArgs.cs +++ b/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class AdvancedClusterAdvancedConfigurationArgs : global::Pulumi.ResourceArgs { + /// + /// 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. + /// + [Input("changeStreamOptionsPreAndPostImagesExpireAfterSeconds")] + public Input? ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds { get; set; } + /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. /// diff --git a/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationGetArgs.cs b/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationGetArgs.cs index 6894f4ff..f253bdd0 100644 --- a/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationGetArgs.cs +++ b/sdk/dotnet/Inputs/AdvancedClusterAdvancedConfigurationGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class AdvancedClusterAdvancedConfigurationGetArgs : global::Pulumi.ResourceArgs { + /// + /// 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. + /// + [Input("changeStreamOptionsPreAndPostImagesExpireAfterSeconds")] + public Input? ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds { get; set; } + /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. /// diff --git a/sdk/dotnet/Inputs/ClusterAdvancedConfigurationArgs.cs b/sdk/dotnet/Inputs/ClusterAdvancedConfigurationArgs.cs index 0b79d5b0..e3e3ba94 100644 --- a/sdk/dotnet/Inputs/ClusterAdvancedConfigurationArgs.cs +++ b/sdk/dotnet/Inputs/ClusterAdvancedConfigurationArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class ClusterAdvancedConfigurationArgs : global::Pulumi.ResourceArgs { + /// + /// 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. + /// + [Input("changeStreamOptionsPreAndPostImagesExpireAfterSeconds")] + public Input? ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds { get; set; } + /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). /// diff --git a/sdk/dotnet/Inputs/ClusterAdvancedConfigurationGetArgs.cs b/sdk/dotnet/Inputs/ClusterAdvancedConfigurationGetArgs.cs index a17b4637..3ffae0e2 100644 --- a/sdk/dotnet/Inputs/ClusterAdvancedConfigurationGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterAdvancedConfigurationGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class ClusterAdvancedConfigurationGetArgs : global::Pulumi.ResourceArgs { + /// + /// 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. + /// + [Input("changeStreamOptionsPreAndPostImagesExpireAfterSeconds")] + public Input? ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds { get; set; } + /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). /// diff --git a/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigArgs.cs b/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigArgs.cs index 0ab23324..e3057cc6 100644 --- a/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigArgs.cs +++ b/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigArgs.cs @@ -14,6 +14,10 @@ public sealed class EncryptionAtRestAwsKmsConfigArgs : global::Pulumi.ResourceAr { [Input("accessKeyId")] private Input? _accessKeyId; + + /// + /// 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). + /// public Input? AccessKeyId { get => _accessKeyId; @@ -28,7 +32,7 @@ public Input? AccessKeyId private Input? _customerMasterKeyId; /// - /// The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + /// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. /// public Input? CustomerMasterKeyId { @@ -41,25 +45,29 @@ public Input? CustomerMasterKeyId } /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// [Input("enabled")] public Input? Enabled { get; set; } /// - /// The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + /// 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. /// [Input("region")] public Input? Region { get; set; } /// - /// ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + /// 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. /// [Input("roleId")] public Input? RoleId { get; set; } [Input("secretAccessKey")] private Input? _secretAccessKey; + + /// + /// 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. + /// public Input? SecretAccessKey { get => _secretAccessKey; @@ -70,6 +78,12 @@ public Input? SecretAccessKey } } + /// + /// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + [Input("valid")] + public Input? Valid { get; set; } + public EncryptionAtRestAwsKmsConfigArgs() { } diff --git a/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigGetArgs.cs b/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigGetArgs.cs index 358dfbd0..592f8213 100644 --- a/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigGetArgs.cs +++ b/sdk/dotnet/Inputs/EncryptionAtRestAwsKmsConfigGetArgs.cs @@ -14,6 +14,10 @@ public sealed class EncryptionAtRestAwsKmsConfigGetArgs : global::Pulumi.Resourc { [Input("accessKeyId")] private Input? _accessKeyId; + + /// + /// 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). + /// public Input? AccessKeyId { get => _accessKeyId; @@ -28,7 +32,7 @@ public Input? AccessKeyId private Input? _customerMasterKeyId; /// - /// The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + /// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. /// public Input? CustomerMasterKeyId { @@ -41,25 +45,29 @@ public Input? CustomerMasterKeyId } /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// [Input("enabled")] public Input? Enabled { get; set; } /// - /// The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + /// 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. /// [Input("region")] public Input? Region { get; set; } /// - /// ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + /// 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. /// [Input("roleId")] public Input? RoleId { get; set; } [Input("secretAccessKey")] private Input? _secretAccessKey; + + /// + /// 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. + /// public Input? SecretAccessKey { get => _secretAccessKey; @@ -70,6 +78,12 @@ public Input? SecretAccessKey } } + /// + /// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + [Input("valid")] + public Input? Valid { get; set; } + public EncryptionAtRestAwsKmsConfigGetArgs() { } diff --git a/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigArgs.cs b/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigArgs.cs index 39c5f791..2c3596e1 100644 --- a/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigArgs.cs +++ b/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class EncryptionAtRestAzureKeyVaultConfigArgs : global::Pulumi.ResourceArgs { /// - /// The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + /// Azure environment in which your account credentials reside. /// [Input("azureEnvironment")] public Input? AzureEnvironment { get; set; } @@ -22,7 +22,7 @@ public sealed class EncryptionAtRestAzureKeyVaultConfigArgs : global::Pulumi.Res private Input? _clientId; /// - /// The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + /// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. /// public Input? ClientId { @@ -35,7 +35,7 @@ public Input? ClientId } /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// [Input("enabled")] public Input? Enabled { get; set; } @@ -44,7 +44,7 @@ public Input? ClientId private Input? _keyIdentifier; /// - /// The unique identifier of a key in an Azure Key Vault. + /// Web address with a unique key that identifies for your Azure Key Vault. /// public Input? KeyIdentifier { @@ -57,13 +57,19 @@ public Input? KeyIdentifier } /// - /// The name of an Azure Key Vault containing your key. + /// Unique string that identifies the Azure Key Vault that contains your key. /// [Input("keyVaultName")] public Input? KeyVaultName { get; set; } /// - /// The name of the Azure Resource group that contains an Azure Key Vault. + /// Enable connection to your Azure Key Vault over private networking. + /// + [Input("requirePrivateNetworking")] + public Input? RequirePrivateNetworking { get; set; } + + /// + /// Name of the Azure resource group that contains your Azure Key Vault. /// [Input("resourceGroupName")] public Input? ResourceGroupName { get; set; } @@ -72,7 +78,7 @@ public Input? KeyIdentifier private Input? _secret; /// - /// The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + /// 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. /// public Input? Secret { @@ -88,7 +94,7 @@ public Input? Secret private Input? _subscriptionId; /// - /// The unique identifier associated with an Azure subscription. + /// Unique 36-hexadecimal character string that identifies your Azure subscription. /// public Input? SubscriptionId { @@ -104,7 +110,7 @@ public Input? SubscriptionId private Input? _tenantId; /// - /// The unique identifier for an Azure AD tenant within an Azure subscription. + /// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. /// public Input? TenantId { @@ -116,6 +122,12 @@ public Input? TenantId } } + /// + /// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + /// + [Input("valid")] + public Input? Valid { get; set; } + public EncryptionAtRestAzureKeyVaultConfigArgs() { } diff --git a/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigGetArgs.cs b/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigGetArgs.cs index 08b19499..cac2a6b9 100644 --- a/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigGetArgs.cs +++ b/sdk/dotnet/Inputs/EncryptionAtRestAzureKeyVaultConfigGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class EncryptionAtRestAzureKeyVaultConfigGetArgs : global::Pulumi.ResourceArgs { /// - /// The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + /// Azure environment in which your account credentials reside. /// [Input("azureEnvironment")] public Input? AzureEnvironment { get; set; } @@ -22,7 +22,7 @@ public sealed class EncryptionAtRestAzureKeyVaultConfigGetArgs : global::Pulumi. private Input? _clientId; /// - /// The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + /// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. /// public Input? ClientId { @@ -35,7 +35,7 @@ public Input? ClientId } /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// [Input("enabled")] public Input? Enabled { get; set; } @@ -44,7 +44,7 @@ public Input? ClientId private Input? _keyIdentifier; /// - /// The unique identifier of a key in an Azure Key Vault. + /// Web address with a unique key that identifies for your Azure Key Vault. /// public Input? KeyIdentifier { @@ -57,13 +57,19 @@ public Input? KeyIdentifier } /// - /// The name of an Azure Key Vault containing your key. + /// Unique string that identifies the Azure Key Vault that contains your key. /// [Input("keyVaultName")] public Input? KeyVaultName { get; set; } /// - /// The name of the Azure Resource group that contains an Azure Key Vault. + /// Enable connection to your Azure Key Vault over private networking. + /// + [Input("requirePrivateNetworking")] + public Input? RequirePrivateNetworking { get; set; } + + /// + /// Name of the Azure resource group that contains your Azure Key Vault. /// [Input("resourceGroupName")] public Input? ResourceGroupName { get; set; } @@ -72,7 +78,7 @@ public Input? KeyIdentifier private Input? _secret; /// - /// The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + /// 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. /// public Input? Secret { @@ -88,7 +94,7 @@ public Input? Secret private Input? _subscriptionId; /// - /// The unique identifier associated with an Azure subscription. + /// Unique 36-hexadecimal character string that identifies your Azure subscription. /// public Input? SubscriptionId { @@ -104,7 +110,7 @@ public Input? SubscriptionId private Input? _tenantId; /// - /// The unique identifier for an Azure AD tenant within an Azure subscription. + /// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. /// public Input? TenantId { @@ -116,6 +122,12 @@ public Input? TenantId } } + /// + /// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + /// + [Input("valid")] + public Input? Valid { get; set; } + public EncryptionAtRestAzureKeyVaultConfigGetArgs() { } diff --git a/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.cs b/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.cs index b94a1565..6314bb12 100644 --- a/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.cs +++ b/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class EncryptionAtRestGoogleCloudKmsConfigArgs : global::Pulumi.ResourceArgs { /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// [Input("enabled")] public Input? Enabled { get; set; } @@ -22,7 +22,7 @@ public sealed class EncryptionAtRestGoogleCloudKmsConfigArgs : global::Pulumi.Re private Input? _keyVersionResourceId; /// - /// The Key Version Resource ID from your GCP account. + /// Resource path that displays the key version resource ID for your Google Cloud KMS. /// public Input? KeyVersionResourceId { @@ -38,7 +38,7 @@ public Input? KeyVersionResourceId private Input? _serviceAccountKey; /// - /// String-formatted JSON object containing GCP KMS credentials from your GCP account. + /// 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. /// public Input? ServiceAccountKey { @@ -50,6 +50,12 @@ public Input? ServiceAccountKey } } + /// + /// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + [Input("valid")] + public Input? Valid { get; set; } + public EncryptionAtRestGoogleCloudKmsConfigArgs() { } diff --git a/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigGetArgs.cs b/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigGetArgs.cs index 9791fe20..ead4e7d1 100644 --- a/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigGetArgs.cs +++ b/sdk/dotnet/Inputs/EncryptionAtRestGoogleCloudKmsConfigGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Mongodbatlas.Inputs public sealed class EncryptionAtRestGoogleCloudKmsConfigGetArgs : global::Pulumi.ResourceArgs { /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// [Input("enabled")] public Input? Enabled { get; set; } @@ -22,7 +22,7 @@ public sealed class EncryptionAtRestGoogleCloudKmsConfigGetArgs : global::Pulumi private Input? _keyVersionResourceId; /// - /// The Key Version Resource ID from your GCP account. + /// Resource path that displays the key version resource ID for your Google Cloud KMS. /// public Input? KeyVersionResourceId { @@ -38,7 +38,7 @@ public Input? KeyVersionResourceId private Input? _serviceAccountKey; /// - /// String-formatted JSON object containing GCP KMS credentials from your GCP account. + /// 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. /// public Input? ServiceAccountKey { @@ -50,6 +50,12 @@ public Input? ServiceAccountKey } } + /// + /// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + [Input("valid")] + public Input? Valid { get; set; } + public EncryptionAtRestGoogleCloudKmsConfigGetArgs() { } diff --git a/sdk/dotnet/Inputs/StreamProcessorOptionsArgs.cs b/sdk/dotnet/Inputs/StreamProcessorOptionsArgs.cs new file mode 100644 index 00000000..5f081903 --- /dev/null +++ b/sdk/dotnet/Inputs/StreamProcessorOptionsArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Inputs +{ + + public sealed class StreamProcessorOptionsArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("dlq", required: true)] + public Input Dlq { get; set; } = null!; + + public StreamProcessorOptionsArgs() + { + } + public static new StreamProcessorOptionsArgs Empty => new StreamProcessorOptionsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/StreamProcessorOptionsDlqArgs.cs b/sdk/dotnet/Inputs/StreamProcessorOptionsDlqArgs.cs new file mode 100644 index 00000000..a65cd253 --- /dev/null +++ b/sdk/dotnet/Inputs/StreamProcessorOptionsDlqArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Inputs +{ + + public sealed class StreamProcessorOptionsDlqArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the collection to use for the DLQ. + /// + [Input("coll", required: true)] + public Input Coll { get; set; } = null!; + + /// + /// Name of the connection to write DLQ messages to. Must be an Atlas connection. + /// + [Input("connectionName", required: true)] + public Input ConnectionName { get; set; } = null!; + + /// + /// Name of the database to use for the DLQ. + /// + [Input("db", required: true)] + public Input Db { get; set; } = null!; + + public StreamProcessorOptionsDlqArgs() + { + } + public static new StreamProcessorOptionsDlqArgs Empty => new StreamProcessorOptionsDlqArgs(); + } +} diff --git a/sdk/dotnet/Inputs/StreamProcessorOptionsDlqGetArgs.cs b/sdk/dotnet/Inputs/StreamProcessorOptionsDlqGetArgs.cs new file mode 100644 index 00000000..736e18ec --- /dev/null +++ b/sdk/dotnet/Inputs/StreamProcessorOptionsDlqGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Inputs +{ + + public sealed class StreamProcessorOptionsDlqGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the collection to use for the DLQ. + /// + [Input("coll", required: true)] + public Input Coll { get; set; } = null!; + + /// + /// Name of the connection to write DLQ messages to. Must be an Atlas connection. + /// + [Input("connectionName", required: true)] + public Input ConnectionName { get; set; } = null!; + + /// + /// Name of the database to use for the DLQ. + /// + [Input("db", required: true)] + public Input Db { get; set; } = null!; + + public StreamProcessorOptionsDlqGetArgs() + { + } + public static new StreamProcessorOptionsDlqGetArgs Empty => new StreamProcessorOptionsDlqGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/StreamProcessorOptionsGetArgs.cs b/sdk/dotnet/Inputs/StreamProcessorOptionsGetArgs.cs new file mode 100644 index 00000000..ee13d12b --- /dev/null +++ b/sdk/dotnet/Inputs/StreamProcessorOptionsGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Inputs +{ + + public sealed class StreamProcessorOptionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("dlq", required: true)] + public Input Dlq { get; set; } = null!; + + public StreamProcessorOptionsGetArgs() + { + } + public static new StreamProcessorOptionsGetArgs Empty => new StreamProcessorOptionsGetArgs(); + } +} diff --git a/sdk/dotnet/OnlineArchive.cs b/sdk/dotnet/OnlineArchive.cs index 6a239506..70147e64 100644 --- a/sdk/dotnet/OnlineArchive.cs +++ b/sdk/dotnet/OnlineArchive.cs @@ -237,6 +237,9 @@ public partial class OnlineArchive : global::Pulumi.CustomResource [Output("state")] public Output State { get; private set; } = null!; + /// + /// 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 `false`. + /// [Output("syncCreation")] public Output SyncCreation { get; private set; } = null!; @@ -358,6 +361,9 @@ public InputList PartitionFields [Input("schedule")] public Input? Schedule { get; set; } + /// + /// 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 `false`. + /// [Input("syncCreation")] public Input? SyncCreation { get; set; } @@ -453,6 +459,9 @@ public InputList PartitionFields [Input("state")] public Input? State { get; set; } + /// + /// 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 `false`. + /// [Input("syncCreation")] public Input? SyncCreation { get; set; } diff --git a/sdk/dotnet/Outputs/AdvancedClusterAdvancedConfiguration.cs b/sdk/dotnet/Outputs/AdvancedClusterAdvancedConfiguration.cs index ee868edc..bfe383a5 100644 --- a/sdk/dotnet/Outputs/AdvancedClusterAdvancedConfiguration.cs +++ b/sdk/dotnet/Outputs/AdvancedClusterAdvancedConfiguration.cs @@ -13,6 +13,10 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class AdvancedClusterAdvancedConfiguration { + /// + /// 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. + /// + public readonly int? ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds; /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. /// @@ -65,6 +69,8 @@ public sealed class AdvancedClusterAdvancedConfiguration [OutputConstructor] private AdvancedClusterAdvancedConfiguration( + int? changeStreamOptionsPreAndPostImagesExpireAfterSeconds, + string? defaultReadConcern, string? defaultWriteConcern, @@ -87,6 +93,7 @@ private AdvancedClusterAdvancedConfiguration( int? transactionLifetimeLimitSeconds) { + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; DefaultReadConcern = defaultReadConcern; DefaultWriteConcern = defaultWriteConcern; FailIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/dotnet/Outputs/ClusterAdvancedConfiguration.cs b/sdk/dotnet/Outputs/ClusterAdvancedConfiguration.cs index 0988a203..63a100e4 100644 --- a/sdk/dotnet/Outputs/ClusterAdvancedConfiguration.cs +++ b/sdk/dotnet/Outputs/ClusterAdvancedConfiguration.cs @@ -13,6 +13,10 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class ClusterAdvancedConfiguration { + /// + /// 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. + /// + public readonly int? ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds; /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). /// @@ -65,6 +69,8 @@ public sealed class ClusterAdvancedConfiguration [OutputConstructor] private ClusterAdvancedConfiguration( + int? changeStreamOptionsPreAndPostImagesExpireAfterSeconds, + string? defaultReadConcern, string? defaultWriteConcern, @@ -87,6 +93,7 @@ private ClusterAdvancedConfiguration( int? transactionLifetimeLimitSeconds) { + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; DefaultReadConcern = defaultReadConcern; DefaultWriteConcern = defaultWriteConcern; FailIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/dotnet/Outputs/EncryptionAtRestAwsKmsConfig.cs b/sdk/dotnet/Outputs/EncryptionAtRestAwsKmsConfig.cs index bcc6c8ee..55c169d0 100644 --- a/sdk/dotnet/Outputs/EncryptionAtRestAwsKmsConfig.cs +++ b/sdk/dotnet/Outputs/EncryptionAtRestAwsKmsConfig.cs @@ -13,24 +13,34 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class EncryptionAtRestAwsKmsConfig { + /// + /// 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). + /// public readonly string? AccessKeyId; /// - /// The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + /// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. /// public readonly string? CustomerMasterKeyId; /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// public readonly bool? Enabled; /// - /// The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + /// 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. /// public readonly string? Region; /// - /// ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + /// 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. /// public readonly string? RoleId; + /// + /// 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. + /// public readonly string? SecretAccessKey; + /// + /// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + public readonly bool? Valid; [OutputConstructor] private EncryptionAtRestAwsKmsConfig( @@ -44,7 +54,9 @@ private EncryptionAtRestAwsKmsConfig( string? roleId, - string? secretAccessKey) + string? secretAccessKey, + + bool? valid) { AccessKeyId = accessKeyId; CustomerMasterKeyId = customerMasterKeyId; @@ -52,6 +64,7 @@ private EncryptionAtRestAwsKmsConfig( Region = region; RoleId = roleId; SecretAccessKey = secretAccessKey; + Valid = valid; } } } diff --git a/sdk/dotnet/Outputs/EncryptionAtRestAzureKeyVaultConfig.cs b/sdk/dotnet/Outputs/EncryptionAtRestAzureKeyVaultConfig.cs index 326829a8..20aa88d0 100644 --- a/sdk/dotnet/Outputs/EncryptionAtRestAzureKeyVaultConfig.cs +++ b/sdk/dotnet/Outputs/EncryptionAtRestAzureKeyVaultConfig.cs @@ -14,41 +14,49 @@ namespace Pulumi.Mongodbatlas.Outputs public sealed class EncryptionAtRestAzureKeyVaultConfig { /// - /// The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + /// Azure environment in which your account credentials reside. /// public readonly string? AzureEnvironment; /// - /// The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + /// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. /// public readonly string? ClientId; /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// public readonly bool? Enabled; /// - /// The unique identifier of a key in an Azure Key Vault. + /// Web address with a unique key that identifies for your Azure Key Vault. /// public readonly string? KeyIdentifier; /// - /// The name of an Azure Key Vault containing your key. + /// Unique string that identifies the Azure Key Vault that contains your key. /// public readonly string? KeyVaultName; /// - /// The name of the Azure Resource group that contains an Azure Key Vault. + /// Enable connection to your Azure Key Vault over private networking. + /// + public readonly bool? RequirePrivateNetworking; + /// + /// Name of the Azure resource group that contains your Azure Key Vault. /// public readonly string? ResourceGroupName; /// - /// The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + /// 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. /// public readonly string? Secret; /// - /// The unique identifier associated with an Azure subscription. + /// Unique 36-hexadecimal character string that identifies your Azure subscription. /// public readonly string? SubscriptionId; /// - /// The unique identifier for an Azure AD tenant within an Azure subscription. + /// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. /// public readonly string? TenantId; + /// + /// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + /// + public readonly bool? Valid; [OutputConstructor] private EncryptionAtRestAzureKeyVaultConfig( @@ -62,23 +70,29 @@ private EncryptionAtRestAzureKeyVaultConfig( string? keyVaultName, + bool? requirePrivateNetworking, + string? resourceGroupName, string? secret, string? subscriptionId, - string? tenantId) + string? tenantId, + + bool? valid) { AzureEnvironment = azureEnvironment; ClientId = clientId; Enabled = enabled; KeyIdentifier = keyIdentifier; KeyVaultName = keyVaultName; + RequirePrivateNetworking = requirePrivateNetworking; ResourceGroupName = resourceGroupName; Secret = secret; SubscriptionId = subscriptionId; TenantId = tenantId; + Valid = valid; } } } diff --git a/sdk/dotnet/Outputs/EncryptionAtRestGoogleCloudKmsConfig.cs b/sdk/dotnet/Outputs/EncryptionAtRestGoogleCloudKmsConfig.cs index 93f65004..d41a979a 100644 --- a/sdk/dotnet/Outputs/EncryptionAtRestGoogleCloudKmsConfig.cs +++ b/sdk/dotnet/Outputs/EncryptionAtRestGoogleCloudKmsConfig.cs @@ -14,17 +14,21 @@ namespace Pulumi.Mongodbatlas.Outputs public sealed class EncryptionAtRestGoogleCloudKmsConfig { /// - /// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. /// public readonly bool? Enabled; /// - /// The Key Version Resource ID from your GCP account. + /// Resource path that displays the key version resource ID for your Google Cloud KMS. /// public readonly string? KeyVersionResourceId; /// - /// String-formatted JSON object containing GCP KMS credentials from your GCP account. + /// 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. /// public readonly string? ServiceAccountKey; + /// + /// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + public readonly bool? Valid; [OutputConstructor] private EncryptionAtRestGoogleCloudKmsConfig( @@ -32,11 +36,14 @@ private EncryptionAtRestGoogleCloudKmsConfig( string? keyVersionResourceId, - string? serviceAccountKey) + string? serviceAccountKey, + + bool? valid) { Enabled = enabled; KeyVersionResourceId = keyVersionResourceId; ServiceAccountKey = serviceAccountKey; + Valid = valid; } } } diff --git a/sdk/dotnet/Outputs/GetAdvancedClusterAdvancedConfigurationResult.cs b/sdk/dotnet/Outputs/GetAdvancedClusterAdvancedConfigurationResult.cs index 20f4548a..161b8acd 100644 --- a/sdk/dotnet/Outputs/GetAdvancedClusterAdvancedConfigurationResult.cs +++ b/sdk/dotnet/Outputs/GetAdvancedClusterAdvancedConfigurationResult.cs @@ -13,6 +13,10 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class GetAdvancedClusterAdvancedConfigurationResult { + /// + /// (Optional) The minimum pre- and post-image retention time in seconds. + /// + public readonly int ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds; /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. /// @@ -60,6 +64,8 @@ public sealed class GetAdvancedClusterAdvancedConfigurationResult [OutputConstructor] private GetAdvancedClusterAdvancedConfigurationResult( + int changeStreamOptionsPreAndPostImagesExpireAfterSeconds, + string defaultReadConcern, string defaultWriteConcern, @@ -82,6 +88,7 @@ private GetAdvancedClusterAdvancedConfigurationResult( int transactionLifetimeLimitSeconds) { + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; DefaultReadConcern = defaultReadConcern; DefaultWriteConcern = defaultWriteConcern; FailIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/dotnet/Outputs/GetAdvancedClustersResultAdvancedConfigurationResult.cs b/sdk/dotnet/Outputs/GetAdvancedClustersResultAdvancedConfigurationResult.cs index aa07839d..59d4d8f1 100644 --- a/sdk/dotnet/Outputs/GetAdvancedClustersResultAdvancedConfigurationResult.cs +++ b/sdk/dotnet/Outputs/GetAdvancedClustersResultAdvancedConfigurationResult.cs @@ -13,6 +13,10 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class GetAdvancedClustersResultAdvancedConfigurationResult { + /// + /// (Optional) The minimum pre- and post-image retention time in seconds. + /// + public readonly int ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds; /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. /// @@ -53,10 +57,15 @@ public sealed class GetAdvancedClustersResultAdvancedConfigurationResult /// 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. /// public readonly int SampleSizeBiConnector; + /// + /// (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. + /// public readonly int TransactionLifetimeLimitSeconds; [OutputConstructor] private GetAdvancedClustersResultAdvancedConfigurationResult( + int changeStreamOptionsPreAndPostImagesExpireAfterSeconds, + string defaultReadConcern, string defaultWriteConcern, @@ -79,6 +88,7 @@ private GetAdvancedClustersResultAdvancedConfigurationResult( int transactionLifetimeLimitSeconds) { + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; DefaultReadConcern = defaultReadConcern; DefaultWriteConcern = defaultWriteConcern; FailIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/dotnet/Outputs/GetAdvancedClustersResultResult.cs b/sdk/dotnet/Outputs/GetAdvancedClustersResultResult.cs index 51c0357a..8ded895c 100644 --- a/sdk/dotnet/Outputs/GetAdvancedClustersResultResult.cs +++ b/sdk/dotnet/Outputs/GetAdvancedClustersResultResult.cs @@ -65,6 +65,10 @@ public sealed class GetAdvancedClustersResultResult /// public readonly bool PitEnabled; /// + /// (Optional) Replica set scaling mode for your cluster. + /// + public readonly string ReplicaSetScalingStrategy; + /// /// List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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 /// public readonly ImmutableArray ReplicationSpecs; @@ -121,6 +125,8 @@ private GetAdvancedClustersResultResult( bool pitEnabled, + string replicaSetScalingStrategy, + ImmutableArray replicationSpecs, string rootCertType, @@ -148,6 +154,7 @@ private GetAdvancedClustersResultResult( Name = name; Paused = paused; PitEnabled = pitEnabled; + ReplicaSetScalingStrategy = replicaSetScalingStrategy; ReplicationSpecs = replicationSpecs; RootCertType = rootCertType; StateName = stateName; diff --git a/sdk/dotnet/Outputs/GetClusterAdvancedConfigurationResult.cs b/sdk/dotnet/Outputs/GetClusterAdvancedConfigurationResult.cs index 54c8c15b..11579568 100644 --- a/sdk/dotnet/Outputs/GetClusterAdvancedConfigurationResult.cs +++ b/sdk/dotnet/Outputs/GetClusterAdvancedConfigurationResult.cs @@ -13,6 +13,10 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class GetClusterAdvancedConfigurationResult { + /// + /// (Optional) The minimum pre- and post-image retention time in seconds. + /// + public readonly int ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds; /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). /// @@ -60,6 +64,8 @@ public sealed class GetClusterAdvancedConfigurationResult [OutputConstructor] private GetClusterAdvancedConfigurationResult( + int changeStreamOptionsPreAndPostImagesExpireAfterSeconds, + string defaultReadConcern, string defaultWriteConcern, @@ -82,6 +88,7 @@ private GetClusterAdvancedConfigurationResult( int transactionLifetimeLimitSeconds) { + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; DefaultReadConcern = defaultReadConcern; DefaultWriteConcern = defaultWriteConcern; FailIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/dotnet/Outputs/GetClustersResultAdvancedConfigurationResult.cs b/sdk/dotnet/Outputs/GetClustersResultAdvancedConfigurationResult.cs index 1df2f920..a78e6f58 100644 --- a/sdk/dotnet/Outputs/GetClustersResultAdvancedConfigurationResult.cs +++ b/sdk/dotnet/Outputs/GetClustersResultAdvancedConfigurationResult.cs @@ -13,6 +13,10 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class GetClustersResultAdvancedConfigurationResult { + /// + /// (Optional) The minimum pre- and post-image retention time in seconds. + /// + public readonly int ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds; /// /// [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). /// @@ -57,6 +61,8 @@ public sealed class GetClustersResultAdvancedConfigurationResult [OutputConstructor] private GetClustersResultAdvancedConfigurationResult( + int changeStreamOptionsPreAndPostImagesExpireAfterSeconds, + string defaultReadConcern, string defaultWriteConcern, @@ -79,6 +85,7 @@ private GetClustersResultAdvancedConfigurationResult( int transactionLifetimeLimitSeconds) { + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; DefaultReadConcern = defaultReadConcern; DefaultWriteConcern = defaultWriteConcern; FailIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/dotnet/Outputs/GetEncryptionAtRestAwsKmsConfigResult.cs b/sdk/dotnet/Outputs/GetEncryptionAtRestAwsKmsConfigResult.cs new file mode 100644 index 00000000..2717b0b4 --- /dev/null +++ b/sdk/dotnet/Outputs/GetEncryptionAtRestAwsKmsConfigResult.cs @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetEncryptionAtRestAwsKmsConfigResult + { + /// + /// 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). + /// + public readonly string AccessKeyId; + /// + /// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + /// + public readonly string CustomerMasterKeyId; + /// + /// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + /// + public readonly bool Enabled; + /// + /// 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. + /// + public readonly string Region; + /// + /// 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. + /// + public readonly string RoleId; + /// + /// 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. + /// + public readonly string SecretAccessKey; + /// + /// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + public readonly bool Valid; + + [OutputConstructor] + private GetEncryptionAtRestAwsKmsConfigResult( + string accessKeyId, + + string customerMasterKeyId, + + bool enabled, + + string region, + + string roleId, + + string secretAccessKey, + + bool valid) + { + AccessKeyId = accessKeyId; + CustomerMasterKeyId = customerMasterKeyId; + Enabled = enabled; + Region = region; + RoleId = roleId; + SecretAccessKey = secretAccessKey; + Valid = valid; + } + } +} diff --git a/sdk/dotnet/Outputs/GetEncryptionAtRestAzureKeyVaultConfigResult.cs b/sdk/dotnet/Outputs/GetEncryptionAtRestAzureKeyVaultConfigResult.cs new file mode 100644 index 00000000..7458e069 --- /dev/null +++ b/sdk/dotnet/Outputs/GetEncryptionAtRestAzureKeyVaultConfigResult.cs @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetEncryptionAtRestAzureKeyVaultConfigResult + { + /// + /// Azure environment in which your account credentials reside. + /// + public readonly string AzureEnvironment; + /// + /// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + /// + public readonly string ClientId; + /// + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + /// + public readonly bool Enabled; + /// + /// Web address with a unique key that identifies for your Azure Key Vault. + /// + public readonly string KeyIdentifier; + /// + /// Unique string that identifies the Azure Key Vault that contains your key. + /// + public readonly string KeyVaultName; + /// + /// Enable connection to your Azure Key Vault over private networking. + /// + public readonly bool RequirePrivateNetworking; + /// + /// Name of the Azure resource group that contains your Azure Key Vault. + /// + public readonly string ResourceGroupName; + /// + /// 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. + /// + public readonly string Secret; + /// + /// Unique 36-hexadecimal character string that identifies your Azure subscription. + /// + public readonly string SubscriptionId; + /// + /// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + /// + public readonly string TenantId; + /// + /// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + /// + public readonly bool Valid; + + [OutputConstructor] + private GetEncryptionAtRestAzureKeyVaultConfigResult( + string azureEnvironment, + + string clientId, + + bool enabled, + + string keyIdentifier, + + string keyVaultName, + + bool requirePrivateNetworking, + + string resourceGroupName, + + string secret, + + string subscriptionId, + + string tenantId, + + bool valid) + { + AzureEnvironment = azureEnvironment; + ClientId = clientId; + Enabled = enabled; + KeyIdentifier = keyIdentifier; + KeyVaultName = keyVaultName; + RequirePrivateNetworking = requirePrivateNetworking; + ResourceGroupName = resourceGroupName; + Secret = secret; + SubscriptionId = subscriptionId; + TenantId = tenantId; + Valid = valid; + } + } +} diff --git a/sdk/dotnet/Outputs/GetEncryptionAtRestGoogleCloudKmsConfigResult.cs b/sdk/dotnet/Outputs/GetEncryptionAtRestGoogleCloudKmsConfigResult.cs new file mode 100644 index 00000000..b0f7b0e6 --- /dev/null +++ b/sdk/dotnet/Outputs/GetEncryptionAtRestGoogleCloudKmsConfigResult.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetEncryptionAtRestGoogleCloudKmsConfigResult + { + /// + /// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + /// + public readonly bool Enabled; + /// + /// Resource path that displays the key version resource ID for your Google Cloud KMS. + /// + public readonly string KeyVersionResourceId; + /// + /// 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. + /// + public readonly string ServiceAccountKey; + /// + /// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + /// + public readonly bool Valid; + + [OutputConstructor] + private GetEncryptionAtRestGoogleCloudKmsConfigResult( + bool enabled, + + string keyVersionResourceId, + + string serviceAccountKey, + + bool valid) + { + Enabled = enabled; + KeyVersionResourceId = keyVersionResourceId; + ServiceAccountKey = serviceAccountKey; + Valid = valid; + } + } +} diff --git a/sdk/dotnet/Outputs/GetEncryptionAtRestPrivateEndpointsResultResult.cs b/sdk/dotnet/Outputs/GetEncryptionAtRestPrivateEndpointsResultResult.cs new file mode 100644 index 00000000..c6c51946 --- /dev/null +++ b/sdk/dotnet/Outputs/GetEncryptionAtRestPrivateEndpointsResultResult.cs @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetEncryptionAtRestPrivateEndpointsResultResult + { + /// + /// Label that identifies the cloud provider of the private endpoint. + /// + public readonly string CloudProvider; + /// + /// Error message for failures associated with the Encryption At Rest private endpoint. + /// + public readonly string ErrorMessage; + /// + /// Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + /// + public readonly string Id; + /// + /// Connection name of the Azure Private Endpoint. + /// + public readonly string PrivateEndpointConnectionName; + /// + /// Unique 24-hexadecimal digit string that identifies your project. + /// + public readonly string ProjectId; + /// + /// Cloud provider region in which the Encryption At Rest private endpoint is located. + /// + public readonly string RegionName; + /// + /// State of the Encryption At Rest private endpoint. + /// + public readonly string Status; + + [OutputConstructor] + private GetEncryptionAtRestPrivateEndpointsResultResult( + string cloudProvider, + + string errorMessage, + + string id, + + string privateEndpointConnectionName, + + string projectId, + + string regionName, + + string status) + { + CloudProvider = cloudProvider; + ErrorMessage = errorMessage; + Id = id; + PrivateEndpointConnectionName = privateEndpointConnectionName; + ProjectId = projectId; + RegionName = regionName; + Status = status; + } + } +} diff --git a/sdk/dotnet/Outputs/GetProjectIpAddressesServicesClusterResult.cs b/sdk/dotnet/Outputs/GetProjectIpAddressesServicesClusterResult.cs index 972ee921..fd1bb1cd 100644 --- a/sdk/dotnet/Outputs/GetProjectIpAddressesServicesClusterResult.cs +++ b/sdk/dotnet/Outputs/GetProjectIpAddressesServicesClusterResult.cs @@ -13,8 +13,17 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class GetProjectIpAddressesServicesClusterResult { + /// + /// Human-readable label that identifies the cluster. + /// public readonly string ClusterName; + /// + /// 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. + /// public readonly ImmutableArray Inbounds; + /// + /// 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. + /// public readonly ImmutableArray Outbounds; [OutputConstructor] diff --git a/sdk/dotnet/Outputs/GetProjectIpAddressesServicesResult.cs b/sdk/dotnet/Outputs/GetProjectIpAddressesServicesResult.cs index c20f4348..7012683d 100644 --- a/sdk/dotnet/Outputs/GetProjectIpAddressesServicesResult.cs +++ b/sdk/dotnet/Outputs/GetProjectIpAddressesServicesResult.cs @@ -13,6 +13,9 @@ namespace Pulumi.Mongodbatlas.Outputs [OutputType] public sealed class GetProjectIpAddressesServicesResult { + /// + /// IP addresses of clusters. + /// public readonly ImmutableArray Clusters; [OutputConstructor] diff --git a/sdk/dotnet/Outputs/GetProjectsResultResult.cs b/sdk/dotnet/Outputs/GetProjectsResultResult.cs index 3e0018cf..f3869848 100644 --- a/sdk/dotnet/Outputs/GetProjectsResultResult.cs +++ b/sdk/dotnet/Outputs/GetProjectsResultResult.cs @@ -26,7 +26,7 @@ public sealed class GetProjectsResultResult /// public readonly string Id; /// - /// IP addresses in a project categorized by services. See IP Addresses. + /// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. /// public readonly Outputs.GetProjectsResultIpAddressesResult IpAddresses; /// diff --git a/sdk/dotnet/Outputs/GetStreamProcessorOptionsDlqResult.cs b/sdk/dotnet/Outputs/GetStreamProcessorOptionsDlqResult.cs new file mode 100644 index 00000000..4104875c --- /dev/null +++ b/sdk/dotnet/Outputs/GetStreamProcessorOptionsDlqResult.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetStreamProcessorOptionsDlqResult + { + /// + /// Name of the collection to use for the DLQ. + /// + public readonly string Coll; + /// + /// Name of the connection to write DLQ messages to. Must be an Atlas connection. + /// + public readonly string ConnectionName; + /// + /// Name of the database to use for the DLQ. + /// + public readonly string Db; + + [OutputConstructor] + private GetStreamProcessorOptionsDlqResult( + string coll, + + string connectionName, + + string db) + { + Coll = coll; + ConnectionName = connectionName; + Db = db; + } + } +} diff --git a/sdk/dotnet/Outputs/GetStreamProcessorOptionsResult.cs b/sdk/dotnet/Outputs/GetStreamProcessorOptionsResult.cs new file mode 100644 index 00000000..be1b3fbb --- /dev/null +++ b/sdk/dotnet/Outputs/GetStreamProcessorOptionsResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetStreamProcessorOptionsResult + { + /// + /// 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. + /// + public readonly Outputs.GetStreamProcessorOptionsDlqResult Dlq; + + [OutputConstructor] + private GetStreamProcessorOptionsResult(Outputs.GetStreamProcessorOptionsDlqResult dlq) + { + Dlq = dlq; + } + } +} diff --git a/sdk/dotnet/Outputs/GetStreamProcessorsResultOptionsDlqResult.cs b/sdk/dotnet/Outputs/GetStreamProcessorsResultOptionsDlqResult.cs new file mode 100644 index 00000000..cab00534 --- /dev/null +++ b/sdk/dotnet/Outputs/GetStreamProcessorsResultOptionsDlqResult.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetStreamProcessorsResultOptionsDlqResult + { + /// + /// Name of the collection to use for the DLQ. + /// + public readonly string Coll; + /// + /// Name of the connection to write DLQ messages to. Must be an Atlas connection. + /// + public readonly string ConnectionName; + /// + /// Name of the database to use for the DLQ. + /// + public readonly string Db; + + [OutputConstructor] + private GetStreamProcessorsResultOptionsDlqResult( + string coll, + + string connectionName, + + string db) + { + Coll = coll; + ConnectionName = connectionName; + Db = db; + } + } +} diff --git a/sdk/dotnet/Outputs/GetStreamProcessorsResultOptionsResult.cs b/sdk/dotnet/Outputs/GetStreamProcessorsResultOptionsResult.cs new file mode 100644 index 00000000..72240f45 --- /dev/null +++ b/sdk/dotnet/Outputs/GetStreamProcessorsResultOptionsResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetStreamProcessorsResultOptionsResult + { + /// + /// 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. + /// + public readonly Outputs.GetStreamProcessorsResultOptionsDlqResult Dlq; + + [OutputConstructor] + private GetStreamProcessorsResultOptionsResult(Outputs.GetStreamProcessorsResultOptionsDlqResult dlq) + { + Dlq = dlq; + } + } +} diff --git a/sdk/dotnet/Outputs/GetStreamProcessorsResultResult.cs b/sdk/dotnet/Outputs/GetStreamProcessorsResultResult.cs new file mode 100644 index 00000000..aff9acc8 --- /dev/null +++ b/sdk/dotnet/Outputs/GetStreamProcessorsResultResult.cs @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class GetStreamProcessorsResultResult + { + /// + /// Unique 24-hexadecimal character string that identifies the stream processor. + /// + public readonly string Id; + /// + /// Human-readable label that identifies the stream instance. + /// + public readonly string InstanceName; + /// + /// Optional configuration for the stream processor. + /// + public readonly Outputs.GetStreamProcessorsResultOptionsResult Options; + /// + /// Stream aggregation pipeline you want to apply to your streaming data. + /// + public readonly string Pipeline; + /// + /// Human-readable label that identifies the stream processor. + /// + public readonly string ProcessorName; + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + public readonly string ProjectId; + /// + /// The state of the stream processor. + /// + public readonly string State; + /// + /// The stats associated with the stream processor. + /// + public readonly string Stats; + + [OutputConstructor] + private GetStreamProcessorsResultResult( + string id, + + string instanceName, + + Outputs.GetStreamProcessorsResultOptionsResult options, + + string pipeline, + + string processorName, + + string projectId, + + string state, + + string stats) + { + Id = id; + InstanceName = instanceName; + Options = options; + Pipeline = pipeline; + ProcessorName = processorName; + ProjectId = projectId; + State = state; + Stats = stats; + } + } +} diff --git a/sdk/dotnet/Outputs/StreamProcessorOptions.cs b/sdk/dotnet/Outputs/StreamProcessorOptions.cs new file mode 100644 index 00000000..b4a0e237 --- /dev/null +++ b/sdk/dotnet/Outputs/StreamProcessorOptions.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class StreamProcessorOptions + { + /// + /// 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. + /// + public readonly Outputs.StreamProcessorOptionsDlq Dlq; + + [OutputConstructor] + private StreamProcessorOptions(Outputs.StreamProcessorOptionsDlq dlq) + { + Dlq = dlq; + } + } +} diff --git a/sdk/dotnet/Outputs/StreamProcessorOptionsDlq.cs b/sdk/dotnet/Outputs/StreamProcessorOptionsDlq.cs new file mode 100644 index 00000000..83f2fd2a --- /dev/null +++ b/sdk/dotnet/Outputs/StreamProcessorOptionsDlq.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas.Outputs +{ + + [OutputType] + public sealed class StreamProcessorOptionsDlq + { + /// + /// Name of the collection to use for the DLQ. + /// + public readonly string Coll; + /// + /// Name of the connection to write DLQ messages to. Must be an Atlas connection. + /// + public readonly string ConnectionName; + /// + /// Name of the database to use for the DLQ. + /// + public readonly string Db; + + [OutputConstructor] + private StreamProcessorOptionsDlq( + string coll, + + string connectionName, + + string db) + { + Coll = coll; + ConnectionName = connectionName; + Db = db; + } + } +} diff --git a/sdk/dotnet/Project.cs b/sdk/dotnet/Project.cs index 6f3a8a65..11cf9396 100644 --- a/sdk/dotnet/Project.cs +++ b/sdk/dotnet/Project.cs @@ -102,7 +102,7 @@ public partial class Project : global::Pulumi.CustomResource public Output Created { get; private set; } = null!; /// - /// IP addresses in a project categorized by services. See IP Addresses. + /// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. /// [Output("ipAddresses")] public Output IpAddresses { get; private set; } = null!; @@ -346,7 +346,7 @@ public sealed class ProjectState : global::Pulumi.ResourceArgs public Input? Created { get; set; } /// - /// IP addresses in a project categorized by services. See IP Addresses. + /// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. /// [Input("ipAddresses")] public Input? IpAddresses { get; set; } diff --git a/sdk/dotnet/StreamProcessor.cs b/sdk/dotnet/StreamProcessor.cs new file mode 100644 index 00000000..16833d31 --- /dev/null +++ b/sdk/dotnet/StreamProcessor.cs @@ -0,0 +1,213 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Mongodbatlas +{ + /// + /// ## Example Usage + /// + [MongodbatlasResourceType("mongodbatlas:index/streamProcessor:StreamProcessor")] + public partial class StreamProcessor : global::Pulumi.CustomResource + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Output("instanceName")] + public Output InstanceName { get; private set; } = null!; + + /// + /// Optional configuration for the stream processor. + /// + [Output("options")] + public Output Options { get; private set; } = null!; + + /// + /// 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + /// + [Output("pipeline")] + public Output Pipeline { get; private set; } = null!; + + /// + /// Human-readable label that identifies the stream processor. + /// + [Output("processorName")] + public Output ProcessorName { get; private set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// 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. **NOTE** When a stream processor is created, + /// the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + /// state is set to STARTED. + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// 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. + /// + [Output("stats")] + public Output Stats { get; private set; } = null!; + + + /// + /// Create a StreamProcessor resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public StreamProcessor(string name, StreamProcessorArgs args, CustomResourceOptions? options = null) + : base("mongodbatlas:index/streamProcessor:StreamProcessor", name, args ?? new StreamProcessorArgs(), MakeResourceOptions(options, "")) + { + } + + private StreamProcessor(string name, Input id, StreamProcessorState? state = null, CustomResourceOptions? options = null) + : base("mongodbatlas:index/streamProcessor:StreamProcessor", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing StreamProcessor resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static StreamProcessor Get(string name, Input id, StreamProcessorState? state = null, CustomResourceOptions? options = null) + { + return new StreamProcessor(name, id, state, options); + } + } + + public sealed class StreamProcessorArgs : global::Pulumi.ResourceArgs + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Input("instanceName", required: true)] + public Input InstanceName { get; set; } = null!; + + /// + /// Optional configuration for the stream processor. + /// + [Input("options")] + public Input? Options { get; set; } + + /// + /// 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + /// + [Input("pipeline", required: true)] + public Input Pipeline { get; set; } = null!; + + /// + /// Human-readable label that identifies the stream processor. + /// + [Input("processorName", required: true)] + public Input ProcessorName { get; set; } = null!; + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// 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. **NOTE** When a stream processor is created, + /// the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + /// state is set to STARTED. + /// + [Input("state")] + public Input? State { get; set; } + + public StreamProcessorArgs() + { + } + public static new StreamProcessorArgs Empty => new StreamProcessorArgs(); + } + + public sealed class StreamProcessorState : global::Pulumi.ResourceArgs + { + /// + /// Human-readable label that identifies the stream instance. + /// + [Input("instanceName")] + public Input? InstanceName { get; set; } + + /// + /// Optional configuration for the stream processor. + /// + [Input("options")] + public Input? Options { get; set; } + + /// + /// 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + /// + [Input("pipeline")] + public Input? Pipeline { get; set; } + + /// + /// Human-readable label that identifies the stream processor. + /// + [Input("processorName")] + public Input? ProcessorName { get; set; } + + /// + /// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// 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. **NOTE** When a stream processor is created, + /// the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + /// state is set to STARTED. + /// + [Input("state")] + public Input? State { get; set; } + + /// + /// 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. + /// + [Input("stats")] + public Input? Stats { get; set; } + + public StreamProcessorState() + { + } + public static new StreamProcessorState Empty => new StreamProcessorState(); + } +} diff --git a/sdk/go/mongodbatlas/advancedCluster.go b/sdk/go/mongodbatlas/advancedCluster.go index 0df96dc4..237abfd0 100644 --- a/sdk/go/mongodbatlas/advancedCluster.go +++ b/sdk/go/mongodbatlas/advancedCluster.go @@ -517,7 +517,7 @@ type AdvancedCluster struct { GlobalClusterSelfManagedSharding pulumi.BoolOutput `pulumi:"globalClusterSelfManagedSharding"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels AdvancedClusterLabelArrayOutput `pulumi:"labels"` // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version. If you set a value to this parameter and set `versionReleaseSystem` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `versionReleaseSystem`: `LTS`. MongoDbMajorVersion pulumi.StringOutput `pulumi:"mongoDbMajorVersion"` @@ -530,6 +530,8 @@ type AdvancedCluster struct { PitEnabled pulumi.BoolOutput `pulumi:"pitEnabled"` // Unique ID for the project to create the database user. ProjectId pulumi.StringOutput `pulumi:"projectId"` + // 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) + ReplicaSetScalingStrategy pulumi.StringOutput `pulumi:"replicaSetScalingStrategy"` // 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below ReplicationSpecs AdvancedClusterReplicationSpecArrayOutput `pulumi:"replicationSpecs"` // Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster @@ -630,7 +632,7 @@ type advancedClusterState struct { GlobalClusterSelfManagedSharding *bool `pulumi:"globalClusterSelfManagedSharding"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []AdvancedClusterLabel `pulumi:"labels"` // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version. If you set a value to this parameter and set `versionReleaseSystem` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `versionReleaseSystem`: `LTS`. MongoDbMajorVersion *string `pulumi:"mongoDbMajorVersion"` @@ -643,6 +645,8 @@ type advancedClusterState struct { PitEnabled *bool `pulumi:"pitEnabled"` // Unique ID for the project to create the database user. ProjectId *string `pulumi:"projectId"` + // 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) + ReplicaSetScalingStrategy *string `pulumi:"replicaSetScalingStrategy"` // 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below ReplicationSpecs []AdvancedClusterReplicationSpec `pulumi:"replicationSpecs"` // Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster @@ -705,7 +709,7 @@ type AdvancedClusterState struct { GlobalClusterSelfManagedSharding pulumi.BoolPtrInput // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels AdvancedClusterLabelArrayInput // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version. If you set a value to this parameter and set `versionReleaseSystem` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `versionReleaseSystem`: `LTS`. MongoDbMajorVersion pulumi.StringPtrInput @@ -718,6 +722,8 @@ type AdvancedClusterState struct { PitEnabled pulumi.BoolPtrInput // Unique ID for the project to create the database user. ProjectId pulumi.StringPtrInput + // 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) + ReplicaSetScalingStrategy pulumi.StringPtrInput // 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below ReplicationSpecs AdvancedClusterReplicationSpecArrayInput // Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster @@ -779,7 +785,7 @@ type advancedClusterArgs struct { GlobalClusterSelfManagedSharding *bool `pulumi:"globalClusterSelfManagedSharding"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []AdvancedClusterLabel `pulumi:"labels"` // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version. If you set a value to this parameter and set `versionReleaseSystem` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `versionReleaseSystem`: `LTS`. MongoDbMajorVersion *string `pulumi:"mongoDbMajorVersion"` @@ -790,6 +796,8 @@ type advancedClusterArgs struct { PitEnabled *bool `pulumi:"pitEnabled"` // Unique ID for the project to create the database user. ProjectId string `pulumi:"projectId"` + // 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) + ReplicaSetScalingStrategy *string `pulumi:"replicaSetScalingStrategy"` // 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below ReplicationSpecs []AdvancedClusterReplicationSpec `pulumi:"replicationSpecs"` // Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster @@ -839,7 +847,7 @@ type AdvancedClusterArgs struct { GlobalClusterSelfManagedSharding pulumi.BoolPtrInput // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels AdvancedClusterLabelArrayInput // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version. If you set a value to this parameter and set `versionReleaseSystem` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `versionReleaseSystem`: `LTS`. MongoDbMajorVersion pulumi.StringPtrInput @@ -850,6 +858,8 @@ type AdvancedClusterArgs struct { PitEnabled pulumi.BoolPtrInput // Unique ID for the project to create the database user. ProjectId pulumi.StringInput + // 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) + ReplicaSetScalingStrategy pulumi.StringPtrInput // 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below ReplicationSpecs AdvancedClusterReplicationSpecArrayInput // Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster @@ -1022,7 +1032,7 @@ func (o AdvancedClusterOutput) GlobalClusterSelfManagedSharding() pulumi.BoolOut // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // -// Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. +// Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags func (o AdvancedClusterOutput) Labels() AdvancedClusterLabelArrayOutput { return o.ApplyT(func(v *AdvancedCluster) AdvancedClusterLabelArrayOutput { return v.Labels }).(AdvancedClusterLabelArrayOutput) } @@ -1056,6 +1066,11 @@ func (o AdvancedClusterOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v *AdvancedCluster) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) } +// 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) +func (o AdvancedClusterOutput) ReplicaSetScalingStrategy() pulumi.StringOutput { + return o.ApplyT(func(v *AdvancedCluster) pulumi.StringOutput { return v.ReplicaSetScalingStrategy }).(pulumi.StringOutput) +} + // 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below func (o AdvancedClusterOutput) ReplicationSpecs() AdvancedClusterReplicationSpecArrayOutput { return o.ApplyT(func(v *AdvancedCluster) AdvancedClusterReplicationSpecArrayOutput { return v.ReplicationSpecs }).(AdvancedClusterReplicationSpecArrayOutput) diff --git a/sdk/go/mongodbatlas/cluster.go b/sdk/go/mongodbatlas/cluster.go index 56faef81..4335bf45 100644 --- a/sdk/go/mongodbatlas/cluster.go +++ b/sdk/go/mongodbatlas/cluster.go @@ -427,7 +427,7 @@ type Cluster struct { EncryptionAtRestProvider pulumi.StringOutput `pulumi:"encryptionAtRestProvider"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels ClusterLabelArrayOutput `pulumi:"labels"` // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `providerInstanceSizeName`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 5.0. 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. MongoDbMajorVersion pulumi.StringOutput `pulumi:"mongoDbMajorVersion"` @@ -599,7 +599,7 @@ type clusterState struct { EncryptionAtRestProvider *string `pulumi:"encryptionAtRestProvider"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []ClusterLabel `pulumi:"labels"` // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `providerInstanceSizeName`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 5.0. 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. MongoDbMajorVersion *string `pulumi:"mongoDbMajorVersion"` @@ -733,7 +733,7 @@ type ClusterState struct { EncryptionAtRestProvider pulumi.StringPtrInput // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels ClusterLabelArrayInput // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `providerInstanceSizeName`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 5.0. 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. MongoDbMajorVersion pulumi.StringPtrInput @@ -865,7 +865,7 @@ type clusterArgs struct { EncryptionAtRestProvider *string `pulumi:"encryptionAtRestProvider"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []ClusterLabel `pulumi:"labels"` // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `providerInstanceSizeName`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 5.0. 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. MongoDbMajorVersion *string `pulumi:"mongoDbMajorVersion"` @@ -973,7 +973,7 @@ type ClusterArgs struct { EncryptionAtRestProvider pulumi.StringPtrInput // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels ClusterLabelArrayInput // Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `providerInstanceSizeName`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 5.0. 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. MongoDbMajorVersion pulumi.StringPtrInput @@ -1217,7 +1217,7 @@ func (o ClusterOutput) EncryptionAtRestProvider() pulumi.StringOutput { // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // -// Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. +// Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags func (o ClusterOutput) Labels() ClusterLabelArrayOutput { return o.ApplyT(func(v *Cluster) ClusterLabelArrayOutput { return v.Labels }).(ClusterLabelArrayOutput) } diff --git a/sdk/go/mongodbatlas/encryptionAtRest.go b/sdk/go/mongodbatlas/encryptionAtRest.go index e04c8e4e..79dfbd34 100644 --- a/sdk/go/mongodbatlas/encryptionAtRest.go +++ b/sdk/go/mongodbatlas/encryptionAtRest.go @@ -12,21 +12,16 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// ## Import -// -// Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g. -// -// ```sh -// $ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934 -// ``` -// For more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management) type EncryptionAtRest struct { pulumi.CustomResourceState - AwsKmsConfig EncryptionAtRestAwsKmsConfigPtrOutput `pulumi:"awsKmsConfig"` - AzureKeyVaultConfig EncryptionAtRestAzureKeyVaultConfigPtrOutput `pulumi:"azureKeyVaultConfig"` + // Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + AwsKmsConfig EncryptionAtRestAwsKmsConfigPtrOutput `pulumi:"awsKmsConfig"` + // Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + AzureKeyVaultConfig EncryptionAtRestAzureKeyVaultConfigPtrOutput `pulumi:"azureKeyVaultConfig"` + // Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). GoogleCloudKmsConfig EncryptionAtRestGoogleCloudKmsConfigPtrOutput `pulumi:"googleCloudKmsConfig"` - // The unique identifier for the project. + // Unique 24-hexadecimal digit string that identifies your project. ProjectId pulumi.StringOutput `pulumi:"projectId"` } @@ -63,18 +58,24 @@ func GetEncryptionAtRest(ctx *pulumi.Context, // Input properties used for looking up and filtering EncryptionAtRest resources. type encryptionAtRestState struct { - AwsKmsConfig *EncryptionAtRestAwsKmsConfig `pulumi:"awsKmsConfig"` - AzureKeyVaultConfig *EncryptionAtRestAzureKeyVaultConfig `pulumi:"azureKeyVaultConfig"` + // Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + AwsKmsConfig *EncryptionAtRestAwsKmsConfig `pulumi:"awsKmsConfig"` + // Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + AzureKeyVaultConfig *EncryptionAtRestAzureKeyVaultConfig `pulumi:"azureKeyVaultConfig"` + // Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). GoogleCloudKmsConfig *EncryptionAtRestGoogleCloudKmsConfig `pulumi:"googleCloudKmsConfig"` - // The unique identifier for the project. + // Unique 24-hexadecimal digit string that identifies your project. ProjectId *string `pulumi:"projectId"` } type EncryptionAtRestState struct { - AwsKmsConfig EncryptionAtRestAwsKmsConfigPtrInput - AzureKeyVaultConfig EncryptionAtRestAzureKeyVaultConfigPtrInput + // Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + AwsKmsConfig EncryptionAtRestAwsKmsConfigPtrInput + // Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + AzureKeyVaultConfig EncryptionAtRestAzureKeyVaultConfigPtrInput + // Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). GoogleCloudKmsConfig EncryptionAtRestGoogleCloudKmsConfigPtrInput - // The unique identifier for the project. + // Unique 24-hexadecimal digit string that identifies your project. ProjectId pulumi.StringPtrInput } @@ -83,19 +84,25 @@ func (EncryptionAtRestState) ElementType() reflect.Type { } type encryptionAtRestArgs struct { - AwsKmsConfig *EncryptionAtRestAwsKmsConfig `pulumi:"awsKmsConfig"` - AzureKeyVaultConfig *EncryptionAtRestAzureKeyVaultConfig `pulumi:"azureKeyVaultConfig"` + // Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + AwsKmsConfig *EncryptionAtRestAwsKmsConfig `pulumi:"awsKmsConfig"` + // Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + AzureKeyVaultConfig *EncryptionAtRestAzureKeyVaultConfig `pulumi:"azureKeyVaultConfig"` + // Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). GoogleCloudKmsConfig *EncryptionAtRestGoogleCloudKmsConfig `pulumi:"googleCloudKmsConfig"` - // The unique identifier for the project. + // Unique 24-hexadecimal digit string that identifies your project. ProjectId string `pulumi:"projectId"` } // The set of arguments for constructing a EncryptionAtRest resource. type EncryptionAtRestArgs struct { - AwsKmsConfig EncryptionAtRestAwsKmsConfigPtrInput - AzureKeyVaultConfig EncryptionAtRestAzureKeyVaultConfigPtrInput + // Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + AwsKmsConfig EncryptionAtRestAwsKmsConfigPtrInput + // Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + AzureKeyVaultConfig EncryptionAtRestAzureKeyVaultConfigPtrInput + // Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). GoogleCloudKmsConfig EncryptionAtRestGoogleCloudKmsConfigPtrInput - // The unique identifier for the project. + // Unique 24-hexadecimal digit string that identifies your project. ProjectId pulumi.StringInput } @@ -186,19 +193,22 @@ func (o EncryptionAtRestOutput) ToEncryptionAtRestOutputWithContext(ctx context. return o } +// Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. func (o EncryptionAtRestOutput) AwsKmsConfig() EncryptionAtRestAwsKmsConfigPtrOutput { return o.ApplyT(func(v *EncryptionAtRest) EncryptionAtRestAwsKmsConfigPtrOutput { return v.AwsKmsConfig }).(EncryptionAtRestAwsKmsConfigPtrOutput) } +// Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). func (o EncryptionAtRestOutput) AzureKeyVaultConfig() EncryptionAtRestAzureKeyVaultConfigPtrOutput { return o.ApplyT(func(v *EncryptionAtRest) EncryptionAtRestAzureKeyVaultConfigPtrOutput { return v.AzureKeyVaultConfig }).(EncryptionAtRestAzureKeyVaultConfigPtrOutput) } +// Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). func (o EncryptionAtRestOutput) GoogleCloudKmsConfig() EncryptionAtRestGoogleCloudKmsConfigPtrOutput { return o.ApplyT(func(v *EncryptionAtRest) EncryptionAtRestGoogleCloudKmsConfigPtrOutput { return v.GoogleCloudKmsConfig }).(EncryptionAtRestGoogleCloudKmsConfigPtrOutput) } -// The unique identifier for the project. +// Unique 24-hexadecimal digit string that identifies your project. func (o EncryptionAtRestOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v *EncryptionAtRest) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) } diff --git a/sdk/go/mongodbatlas/encryptionAtRestPrivateEndpoint.go b/sdk/go/mongodbatlas/encryptionAtRestPrivateEndpoint.go new file mode 100644 index 00000000..29e6926e --- /dev/null +++ b/sdk/go/mongodbatlas/encryptionAtRestPrivateEndpoint.go @@ -0,0 +1,365 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Resource: EncryptionAtRestPrivateEndpoint +// +// `EncryptionAtRestPrivateEndpoint` 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. +// +// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. +// To 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). +// +// > **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled. +// +// > **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. +// +// ## Example Usage +// +// ### S +// +// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. +// +// ### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link +// +// Make sure to reference the complete example section for detailed steps and considerations. +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// "fmt" +// +// "github.com/pulumi/pulumi-azapi/sdk/go/azapi" +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ear, err := mongodbatlas.NewEncryptionAtRest(ctx, "ear", &mongodbatlas.EncryptionAtRestArgs{ +// ProjectId: pulumi.Any(atlasProjectId), +// AzureKeyVaultConfig: &mongodbatlas.EncryptionAtRestAzureKeyVaultConfigArgs{ +// RequirePrivateNetworking: pulumi.Bool(true), +// Enabled: pulumi.Bool(true), +// AzureEnvironment: pulumi.String("AZURE"), +// TenantId: pulumi.Any(azureTenantId), +// SubscriptionId: pulumi.Any(azureSubscriptionId), +// ClientId: pulumi.Any(azureClientId), +// Secret: pulumi.Any(azureClientSecret), +// ResourceGroupName: pulumi.Any(azureResourceGroupName), +// KeyVaultName: pulumi.Any(azureKeyVaultName), +// KeyIdentifier: pulumi.Any(azureKeyIdentifier), +// }, +// }) +// if err != nil { +// return err +// } +// // Creates private endpoint +// endpoint, err := mongodbatlas.NewEncryptionAtRestPrivateEndpoint(ctx, "endpoint", &mongodbatlas.EncryptionAtRestPrivateEndpointArgs{ +// ProjectId: ear.ProjectId, +// CloudProvider: pulumi.String("AZURE"), +// RegionName: pulumi.Any(azureRegionName), +// }) +// if err != nil { +// return err +// } +// keyVaultResourceId := fmt.Sprintf("/subscriptions/%v/resourceGroups/%v/providers/Microsoft.KeyVault/vaults/%v", azureSubscriptionId, azureResourceGroupName, azureKeyVaultName); +// // Approves private endpoint connection from Azure Key Vault +// _, err = azapi.NewUpdateResource(ctx, "approval", &azapi.UpdateResourceArgs{ +// Type: "Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01", +// Name: endpoint.PrivateEndpointConnectionName, +// ParentId: keyVaultResourceId, +// Body: %!v(PANIC=Format method: fatal: An assertion has failed: unlowered function toJSON), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +type EncryptionAtRestPrivateEndpoint struct { + pulumi.CustomResourceState + + // Label that identifies the cloud provider for the Encryption At Rest private endpoint. + CloudProvider pulumi.StringOutput `pulumi:"cloudProvider"` + // Error message for failures associated with the Encryption At Rest private endpoint. + ErrorMessage pulumi.StringOutput `pulumi:"errorMessage"` + // Connection name of the Azure Private Endpoint. + PrivateEndpointConnectionName pulumi.StringOutput `pulumi:"privateEndpointConnectionName"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName pulumi.StringOutput `pulumi:"regionName"` + // State of the Encryption At Rest private endpoint. + Status pulumi.StringOutput `pulumi:"status"` +} + +// NewEncryptionAtRestPrivateEndpoint registers a new resource with the given unique name, arguments, and options. +func NewEncryptionAtRestPrivateEndpoint(ctx *pulumi.Context, + name string, args *EncryptionAtRestPrivateEndpointArgs, opts ...pulumi.ResourceOption) (*EncryptionAtRestPrivateEndpoint, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CloudProvider == nil { + return nil, errors.New("invalid value for required argument 'CloudProvider'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + if args.RegionName == nil { + return nil, errors.New("invalid value for required argument 'RegionName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EncryptionAtRestPrivateEndpoint + err := ctx.RegisterResource("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEncryptionAtRestPrivateEndpoint gets an existing EncryptionAtRestPrivateEndpoint resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEncryptionAtRestPrivateEndpoint(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EncryptionAtRestPrivateEndpointState, opts ...pulumi.ResourceOption) (*EncryptionAtRestPrivateEndpoint, error) { + var resource EncryptionAtRestPrivateEndpoint + err := ctx.ReadResource("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EncryptionAtRestPrivateEndpoint resources. +type encryptionAtRestPrivateEndpointState struct { + // Label that identifies the cloud provider for the Encryption At Rest private endpoint. + CloudProvider *string `pulumi:"cloudProvider"` + // Error message for failures associated with the Encryption At Rest private endpoint. + ErrorMessage *string `pulumi:"errorMessage"` + // Connection name of the Azure Private Endpoint. + PrivateEndpointConnectionName *string `pulumi:"privateEndpointConnectionName"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId *string `pulumi:"projectId"` + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName *string `pulumi:"regionName"` + // State of the Encryption At Rest private endpoint. + Status *string `pulumi:"status"` +} + +type EncryptionAtRestPrivateEndpointState struct { + // Label that identifies the cloud provider for the Encryption At Rest private endpoint. + CloudProvider pulumi.StringPtrInput + // Error message for failures associated with the Encryption At Rest private endpoint. + ErrorMessage pulumi.StringPtrInput + // Connection name of the Azure Private Endpoint. + PrivateEndpointConnectionName pulumi.StringPtrInput + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringPtrInput + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName pulumi.StringPtrInput + // State of the Encryption At Rest private endpoint. + Status pulumi.StringPtrInput +} + +func (EncryptionAtRestPrivateEndpointState) ElementType() reflect.Type { + return reflect.TypeOf((*encryptionAtRestPrivateEndpointState)(nil)).Elem() +} + +type encryptionAtRestPrivateEndpointArgs struct { + // Label that identifies the cloud provider for the Encryption At Rest private endpoint. + CloudProvider string `pulumi:"cloudProvider"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName string `pulumi:"regionName"` +} + +// The set of arguments for constructing a EncryptionAtRestPrivateEndpoint resource. +type EncryptionAtRestPrivateEndpointArgs struct { + // Label that identifies the cloud provider for the Encryption At Rest private endpoint. + CloudProvider pulumi.StringInput + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringInput + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName pulumi.StringInput +} + +func (EncryptionAtRestPrivateEndpointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*encryptionAtRestPrivateEndpointArgs)(nil)).Elem() +} + +type EncryptionAtRestPrivateEndpointInput interface { + pulumi.Input + + ToEncryptionAtRestPrivateEndpointOutput() EncryptionAtRestPrivateEndpointOutput + ToEncryptionAtRestPrivateEndpointOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointOutput +} + +func (*EncryptionAtRestPrivateEndpoint) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionAtRestPrivateEndpoint)(nil)).Elem() +} + +func (i *EncryptionAtRestPrivateEndpoint) ToEncryptionAtRestPrivateEndpointOutput() EncryptionAtRestPrivateEndpointOutput { + return i.ToEncryptionAtRestPrivateEndpointOutputWithContext(context.Background()) +} + +func (i *EncryptionAtRestPrivateEndpoint) ToEncryptionAtRestPrivateEndpointOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionAtRestPrivateEndpointOutput) +} + +// EncryptionAtRestPrivateEndpointArrayInput is an input type that accepts EncryptionAtRestPrivateEndpointArray and EncryptionAtRestPrivateEndpointArrayOutput values. +// You can construct a concrete instance of `EncryptionAtRestPrivateEndpointArrayInput` via: +// +// EncryptionAtRestPrivateEndpointArray{ EncryptionAtRestPrivateEndpointArgs{...} } +type EncryptionAtRestPrivateEndpointArrayInput interface { + pulumi.Input + + ToEncryptionAtRestPrivateEndpointArrayOutput() EncryptionAtRestPrivateEndpointArrayOutput + ToEncryptionAtRestPrivateEndpointArrayOutputWithContext(context.Context) EncryptionAtRestPrivateEndpointArrayOutput +} + +type EncryptionAtRestPrivateEndpointArray []EncryptionAtRestPrivateEndpointInput + +func (EncryptionAtRestPrivateEndpointArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EncryptionAtRestPrivateEndpoint)(nil)).Elem() +} + +func (i EncryptionAtRestPrivateEndpointArray) ToEncryptionAtRestPrivateEndpointArrayOutput() EncryptionAtRestPrivateEndpointArrayOutput { + return i.ToEncryptionAtRestPrivateEndpointArrayOutputWithContext(context.Background()) +} + +func (i EncryptionAtRestPrivateEndpointArray) ToEncryptionAtRestPrivateEndpointArrayOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionAtRestPrivateEndpointArrayOutput) +} + +// EncryptionAtRestPrivateEndpointMapInput is an input type that accepts EncryptionAtRestPrivateEndpointMap and EncryptionAtRestPrivateEndpointMapOutput values. +// You can construct a concrete instance of `EncryptionAtRestPrivateEndpointMapInput` via: +// +// EncryptionAtRestPrivateEndpointMap{ "key": EncryptionAtRestPrivateEndpointArgs{...} } +type EncryptionAtRestPrivateEndpointMapInput interface { + pulumi.Input + + ToEncryptionAtRestPrivateEndpointMapOutput() EncryptionAtRestPrivateEndpointMapOutput + ToEncryptionAtRestPrivateEndpointMapOutputWithContext(context.Context) EncryptionAtRestPrivateEndpointMapOutput +} + +type EncryptionAtRestPrivateEndpointMap map[string]EncryptionAtRestPrivateEndpointInput + +func (EncryptionAtRestPrivateEndpointMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EncryptionAtRestPrivateEndpoint)(nil)).Elem() +} + +func (i EncryptionAtRestPrivateEndpointMap) ToEncryptionAtRestPrivateEndpointMapOutput() EncryptionAtRestPrivateEndpointMapOutput { + return i.ToEncryptionAtRestPrivateEndpointMapOutputWithContext(context.Background()) +} + +func (i EncryptionAtRestPrivateEndpointMap) ToEncryptionAtRestPrivateEndpointMapOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionAtRestPrivateEndpointMapOutput) +} + +type EncryptionAtRestPrivateEndpointOutput struct{ *pulumi.OutputState } + +func (EncryptionAtRestPrivateEndpointOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionAtRestPrivateEndpoint)(nil)).Elem() +} + +func (o EncryptionAtRestPrivateEndpointOutput) ToEncryptionAtRestPrivateEndpointOutput() EncryptionAtRestPrivateEndpointOutput { + return o +} + +func (o EncryptionAtRestPrivateEndpointOutput) ToEncryptionAtRestPrivateEndpointOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointOutput { + return o +} + +// Label that identifies the cloud provider for the Encryption At Rest private endpoint. +func (o EncryptionAtRestPrivateEndpointOutput) CloudProvider() pulumi.StringOutput { + return o.ApplyT(func(v *EncryptionAtRestPrivateEndpoint) pulumi.StringOutput { return v.CloudProvider }).(pulumi.StringOutput) +} + +// Error message for failures associated with the Encryption At Rest private endpoint. +func (o EncryptionAtRestPrivateEndpointOutput) ErrorMessage() pulumi.StringOutput { + return o.ApplyT(func(v *EncryptionAtRestPrivateEndpoint) pulumi.StringOutput { return v.ErrorMessage }).(pulumi.StringOutput) +} + +// Connection name of the Azure Private Endpoint. +func (o EncryptionAtRestPrivateEndpointOutput) PrivateEndpointConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v *EncryptionAtRestPrivateEndpoint) pulumi.StringOutput { return v.PrivateEndpointConnectionName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. +func (o EncryptionAtRestPrivateEndpointOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *EncryptionAtRestPrivateEndpoint) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// Cloud provider region in which the Encryption At Rest private endpoint is located. +func (o EncryptionAtRestPrivateEndpointOutput) RegionName() pulumi.StringOutput { + return o.ApplyT(func(v *EncryptionAtRestPrivateEndpoint) pulumi.StringOutput { return v.RegionName }).(pulumi.StringOutput) +} + +// State of the Encryption At Rest private endpoint. +func (o EncryptionAtRestPrivateEndpointOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *EncryptionAtRestPrivateEndpoint) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +type EncryptionAtRestPrivateEndpointArrayOutput struct{ *pulumi.OutputState } + +func (EncryptionAtRestPrivateEndpointArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EncryptionAtRestPrivateEndpoint)(nil)).Elem() +} + +func (o EncryptionAtRestPrivateEndpointArrayOutput) ToEncryptionAtRestPrivateEndpointArrayOutput() EncryptionAtRestPrivateEndpointArrayOutput { + return o +} + +func (o EncryptionAtRestPrivateEndpointArrayOutput) ToEncryptionAtRestPrivateEndpointArrayOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointArrayOutput { + return o +} + +func (o EncryptionAtRestPrivateEndpointArrayOutput) Index(i pulumi.IntInput) EncryptionAtRestPrivateEndpointOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EncryptionAtRestPrivateEndpoint { + return vs[0].([]*EncryptionAtRestPrivateEndpoint)[vs[1].(int)] + }).(EncryptionAtRestPrivateEndpointOutput) +} + +type EncryptionAtRestPrivateEndpointMapOutput struct{ *pulumi.OutputState } + +func (EncryptionAtRestPrivateEndpointMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EncryptionAtRestPrivateEndpoint)(nil)).Elem() +} + +func (o EncryptionAtRestPrivateEndpointMapOutput) ToEncryptionAtRestPrivateEndpointMapOutput() EncryptionAtRestPrivateEndpointMapOutput { + return o +} + +func (o EncryptionAtRestPrivateEndpointMapOutput) ToEncryptionAtRestPrivateEndpointMapOutputWithContext(ctx context.Context) EncryptionAtRestPrivateEndpointMapOutput { + return o +} + +func (o EncryptionAtRestPrivateEndpointMapOutput) MapIndex(k pulumi.StringInput) EncryptionAtRestPrivateEndpointOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EncryptionAtRestPrivateEndpoint { + return vs[0].(map[string]*EncryptionAtRestPrivateEndpoint)[vs[1].(string)] + }).(EncryptionAtRestPrivateEndpointOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EncryptionAtRestPrivateEndpointInput)(nil)).Elem(), &EncryptionAtRestPrivateEndpoint{}) + pulumi.RegisterInputType(reflect.TypeOf((*EncryptionAtRestPrivateEndpointArrayInput)(nil)).Elem(), EncryptionAtRestPrivateEndpointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EncryptionAtRestPrivateEndpointMapInput)(nil)).Elem(), EncryptionAtRestPrivateEndpointMap{}) + pulumi.RegisterOutputType(EncryptionAtRestPrivateEndpointOutput{}) + pulumi.RegisterOutputType(EncryptionAtRestPrivateEndpointArrayOutput{}) + pulumi.RegisterOutputType(EncryptionAtRestPrivateEndpointMapOutput{}) +} diff --git a/sdk/go/mongodbatlas/getAdvancedCluster.go b/sdk/go/mongodbatlas/getAdvancedCluster.go index d2b7eadf..edee14a0 100644 --- a/sdk/go/mongodbatlas/getAdvancedCluster.go +++ b/sdk/go/mongodbatlas/getAdvancedCluster.go @@ -177,7 +177,7 @@ type LookupAdvancedClusterResult struct { Id string `pulumi:"id"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []GetAdvancedClusterLabel `pulumi:"labels"` // Version of the cluster to deploy. MongoDbMajorVersion string `pulumi:"mongoDbMajorVersion"` @@ -189,6 +189,8 @@ type LookupAdvancedClusterResult struct { // Flag that indicates if the cluster uses Continuous Cloud Backup. PitEnabled bool `pulumi:"pitEnabled"` ProjectId string `pulumi:"projectId"` + // (Optional) Replica set scaling mode for your cluster. + ReplicaSetScalingStrategy string `pulumi:"replicaSetScalingStrategy"` // List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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. ReplicationSpecs []GetAdvancedClusterReplicationSpec `pulumi:"replicationSpecs"` // Certificate Authority that MongoDB Atlas clusters use. @@ -302,7 +304,7 @@ func (o LookupAdvancedClusterResultOutput) Id() pulumi.StringOutput { // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead. // -// Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. +// Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags func (o LookupAdvancedClusterResultOutput) Labels() GetAdvancedClusterLabelArrayOutput { return o.ApplyT(func(v LookupAdvancedClusterResult) []GetAdvancedClusterLabel { return v.Labels }).(GetAdvancedClusterLabelArrayOutput) } @@ -335,6 +337,11 @@ func (o LookupAdvancedClusterResultOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v LookupAdvancedClusterResult) string { return v.ProjectId }).(pulumi.StringOutput) } +// (Optional) Replica set scaling mode for your cluster. +func (o LookupAdvancedClusterResultOutput) ReplicaSetScalingStrategy() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdvancedClusterResult) string { return v.ReplicaSetScalingStrategy }).(pulumi.StringOutput) +} + // List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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. func (o LookupAdvancedClusterResultOutput) ReplicationSpecs() GetAdvancedClusterReplicationSpecArrayOutput { return o.ApplyT(func(v LookupAdvancedClusterResult) []GetAdvancedClusterReplicationSpec { return v.ReplicationSpecs }).(GetAdvancedClusterReplicationSpecArrayOutput) diff --git a/sdk/go/mongodbatlas/getCluster.go b/sdk/go/mongodbatlas/getCluster.go index b9bb9473..435c3269 100644 --- a/sdk/go/mongodbatlas/getCluster.go +++ b/sdk/go/mongodbatlas/getCluster.go @@ -118,7 +118,7 @@ type LookupClusterResult struct { Id string `pulumi:"id"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []GetClusterLabel `pulumi:"labels"` // Indicates the version of the cluster to deploy. MongoDbMajorVersion string `pulumi:"mongoDbMajorVersion"` @@ -291,7 +291,7 @@ func (o LookupClusterResultOutput) Id() pulumi.StringOutput { // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // -// Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. +// Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags func (o LookupClusterResultOutput) Labels() GetClusterLabelArrayOutput { return o.ApplyT(func(v LookupClusterResult) []GetClusterLabel { return v.Labels }).(GetClusterLabelArrayOutput) } diff --git a/sdk/go/mongodbatlas/getEncryptionAtRest.go b/sdk/go/mongodbatlas/getEncryptionAtRest.go new file mode 100644 index 00000000..f4ac1032 --- /dev/null +++ b/sdk/go/mongodbatlas/getEncryptionAtRest.go @@ -0,0 +1,289 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Data Source: EncryptionAtRest +// +// `EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: +// +// [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) +// [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) +// [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) +// +// > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. +// +// > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management +// +// > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. +// +// ## Example Usage +// +// ### S +// +// ### Configuring encryption at rest using customer key management in AWS +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// setupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, "setup_only", &mongodbatlas.CloudProviderAccessSetupArgs{ +// ProjectId: pulumi.Any(atlasProjectId), +// ProviderName: pulumi.String("AWS"), +// }) +// if err != nil { +// return err +// } +// authRole, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, "auth_role", &mongodbatlas.CloudProviderAccessAuthorizationArgs{ +// ProjectId: pulumi.Any(atlasProjectId), +// RoleId: setupOnly.RoleId, +// Aws: &mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{ +// IamAssumedRoleArn: pulumi.Any(testRole.Arn), +// }, +// }) +// if err != nil { +// return err +// } +// testEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, "test", &mongodbatlas.EncryptionAtRestArgs{ +// ProjectId: pulumi.Any(atlasProjectId), +// AwsKmsConfig: &mongodbatlas.EncryptionAtRestAwsKmsConfigArgs{ +// Enabled: pulumi.Bool(true), +// CustomerMasterKeyId: pulumi.Any(kmsKey.Id), +// Region: pulumi.Any(atlasRegion), +// RoleId: authRole.RoleId, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = mongodbatlas.NewAdvancedCluster(ctx, "cluster", &mongodbatlas.AdvancedClusterArgs{ +// ProjectId: testEncryptionAtRest.ProjectId, +// Name: pulumi.String("MyCluster"), +// ClusterType: pulumi.String("REPLICASET"), +// BackupEnabled: pulumi.Bool(true), +// EncryptionAtRestProvider: pulumi.String("AWS"), +// ReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{ +// &mongodbatlas.AdvancedClusterReplicationSpecArgs{ +// RegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{ +// &mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{ +// Priority: pulumi.Int(7), +// ProviderName: pulumi.String("AWS"), +// RegionName: pulumi.String("US_EAST_1"), +// ElectableSpecs: &mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{ +// InstanceSize: pulumi.String("M10"), +// NodeCount: pulumi.Int(3), +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// test := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{ +// ProjectId: testEncryptionAtRest.ProjectId, +// }, nil) +// ctx.Export("isAwsKmsEncryptionAtRestValid", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) { +// return &test.AwsKmsConfig.Valid, nil +// }).(pulumi.BoolPtrOutput)) +// return nil +// }) +// } +// +// ``` +// +// ### Configuring encryption at rest using customer key management in Azure +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, "test", &mongodbatlas.EncryptionAtRestArgs{ +// ProjectId: pulumi.Any(atlasProjectId), +// AzureKeyVaultConfig: &mongodbatlas.EncryptionAtRestAzureKeyVaultConfigArgs{ +// Enabled: pulumi.Bool(true), +// AzureEnvironment: pulumi.String("AZURE"), +// TenantId: pulumi.Any(azureTenantId), +// SubscriptionId: pulumi.Any(azureSubscriptionId), +// ClientId: pulumi.Any(azureClientId), +// Secret: pulumi.Any(azureClientSecret), +// ResourceGroupName: pulumi.Any(azureResourceGroupName), +// KeyVaultName: pulumi.Any(azureKeyVaultName), +// KeyIdentifier: pulumi.Any(azureKeyIdentifier), +// }, +// }) +// if err != nil { +// return err +// } +// test := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{ +// ProjectId: testEncryptionAtRest.ProjectId, +// }, nil) +// ctx.Export("isAzureEncryptionAtRestValid", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) { +// return &test.AzureKeyVaultConfig.Valid, nil +// }).(pulumi.BoolPtrOutput)) +// return nil +// }) +// } +// +// ``` +// +// > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `EncryptionAtRestPrivateEndpoint` resource for details. +// +// ### Configuring encryption at rest using customer key management in GCP +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, "test", &mongodbatlas.EncryptionAtRestArgs{ +// ProjectId: pulumi.Any(atlasProjectId), +// GoogleCloudKmsConfig: &mongodbatlas.EncryptionAtRestGoogleCloudKmsConfigArgs{ +// Enabled: pulumi.Bool(true), +// ServiceAccountKey: 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\"}"), +// KeyVersionResourceId: pulumi.String("projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1"), +// }, +// }) +// if err != nil { +// return err +// } +// test := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{ +// ProjectId: testEncryptionAtRest.ProjectId, +// }, nil) +// ctx.Export("isGcpEncryptionAtRestValid", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) { +// return &test.GoogleCloudKmsConfig.Valid, nil +// }).(pulumi.BoolPtrOutput)) +// return nil +// }) +// } +// +// ``` +func LookupEncryptionAtRest(ctx *pulumi.Context, args *LookupEncryptionAtRestArgs, opts ...pulumi.InvokeOption) (*LookupEncryptionAtRestResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupEncryptionAtRestResult + err := ctx.Invoke("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getEncryptionAtRest. +type LookupEncryptionAtRestArgs struct { + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getEncryptionAtRest. +type LookupEncryptionAtRestResult struct { + // Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + AwsKmsConfig GetEncryptionAtRestAwsKmsConfig `pulumi:"awsKmsConfig"` + // Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + AzureKeyVaultConfig GetEncryptionAtRestAzureKeyVaultConfig `pulumi:"azureKeyVaultConfig"` + // Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + GoogleCloudKmsConfig GetEncryptionAtRestGoogleCloudKmsConfig `pulumi:"googleCloudKmsConfig"` + // The ID of this resource. + Id string `pulumi:"id"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` +} + +func LookupEncryptionAtRestOutput(ctx *pulumi.Context, args LookupEncryptionAtRestOutputArgs, opts ...pulumi.InvokeOption) LookupEncryptionAtRestResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupEncryptionAtRestResult, error) { + args := v.(LookupEncryptionAtRestArgs) + r, err := LookupEncryptionAtRest(ctx, &args, opts...) + var s LookupEncryptionAtRestResult + if r != nil { + s = *r + } + return s, err + }).(LookupEncryptionAtRestResultOutput) +} + +// A collection of arguments for invoking getEncryptionAtRest. +type LookupEncryptionAtRestOutputArgs struct { + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupEncryptionAtRestOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionAtRestArgs)(nil)).Elem() +} + +// A collection of values returned by getEncryptionAtRest. +type LookupEncryptionAtRestResultOutput struct{ *pulumi.OutputState } + +func (LookupEncryptionAtRestResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionAtRestResult)(nil)).Elem() +} + +func (o LookupEncryptionAtRestResultOutput) ToLookupEncryptionAtRestResultOutput() LookupEncryptionAtRestResultOutput { + return o +} + +func (o LookupEncryptionAtRestResultOutput) ToLookupEncryptionAtRestResultOutputWithContext(ctx context.Context) LookupEncryptionAtRestResultOutput { + return o +} + +// Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. +func (o LookupEncryptionAtRestResultOutput) AwsKmsConfig() GetEncryptionAtRestAwsKmsConfigOutput { + return o.ApplyT(func(v LookupEncryptionAtRestResult) GetEncryptionAtRestAwsKmsConfig { return v.AwsKmsConfig }).(GetEncryptionAtRestAwsKmsConfigOutput) +} + +// Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). +func (o LookupEncryptionAtRestResultOutput) AzureKeyVaultConfig() GetEncryptionAtRestAzureKeyVaultConfigOutput { + return o.ApplyT(func(v LookupEncryptionAtRestResult) GetEncryptionAtRestAzureKeyVaultConfig { + return v.AzureKeyVaultConfig + }).(GetEncryptionAtRestAzureKeyVaultConfigOutput) +} + +// Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). +func (o LookupEncryptionAtRestResultOutput) GoogleCloudKmsConfig() GetEncryptionAtRestGoogleCloudKmsConfigOutput { + return o.ApplyT(func(v LookupEncryptionAtRestResult) GetEncryptionAtRestGoogleCloudKmsConfig { + return v.GoogleCloudKmsConfig + }).(GetEncryptionAtRestGoogleCloudKmsConfigOutput) +} + +// The ID of this resource. +func (o LookupEncryptionAtRestResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. +func (o LookupEncryptionAtRestResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEncryptionAtRestResultOutput{}) +} diff --git a/sdk/go/mongodbatlas/getEncryptionAtRestPrivateEndpoint.go b/sdk/go/mongodbatlas/getEncryptionAtRestPrivateEndpoint.go new file mode 100644 index 00000000..11b79beb --- /dev/null +++ b/sdk/go/mongodbatlas/getEncryptionAtRestPrivateEndpoint.go @@ -0,0 +1,170 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Data Source: EncryptionAtRestPrivateEndpoint +// +// `EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. +// +// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. +// To 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). +// +// ## Example Usage +// +// ### S +// +// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// single, err := mongodbatlas.LookupEncryptionAtRestPrivateEndpoint(ctx, &mongodbatlas.LookupEncryptionAtRestPrivateEndpointArgs{ +// ProjectId: atlasProjectId, +// CloudProvider: "AZURE", +// Id: endpoint.Id, +// }, nil) +// if err != nil { +// return err +// } +// ctx.Export("endpointConnectionName", single.PrivateEndpointConnectionName) +// return nil +// }) +// } +// +// ``` +func LookupEncryptionAtRestPrivateEndpoint(ctx *pulumi.Context, args *LookupEncryptionAtRestPrivateEndpointArgs, opts ...pulumi.InvokeOption) (*LookupEncryptionAtRestPrivateEndpointResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupEncryptionAtRestPrivateEndpointResult + err := ctx.Invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint. +type LookupEncryptionAtRestPrivateEndpointArgs struct { + // Label that identifies the cloud provider of the private endpoint. + CloudProvider string `pulumi:"cloudProvider"` + // Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + Id string `pulumi:"id"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getEncryptionAtRestPrivateEndpoint. +type LookupEncryptionAtRestPrivateEndpointResult struct { + // Label that identifies the cloud provider of the private endpoint. + CloudProvider string `pulumi:"cloudProvider"` + // Error message for failures associated with the Encryption At Rest private endpoint. + ErrorMessage string `pulumi:"errorMessage"` + // Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + Id string `pulumi:"id"` + // Connection name of the Azure Private Endpoint. + PrivateEndpointConnectionName string `pulumi:"privateEndpointConnectionName"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName string `pulumi:"regionName"` + // State of the Encryption At Rest private endpoint. + Status string `pulumi:"status"` +} + +func LookupEncryptionAtRestPrivateEndpointOutput(ctx *pulumi.Context, args LookupEncryptionAtRestPrivateEndpointOutputArgs, opts ...pulumi.InvokeOption) LookupEncryptionAtRestPrivateEndpointResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupEncryptionAtRestPrivateEndpointResult, error) { + args := v.(LookupEncryptionAtRestPrivateEndpointArgs) + r, err := LookupEncryptionAtRestPrivateEndpoint(ctx, &args, opts...) + var s LookupEncryptionAtRestPrivateEndpointResult + if r != nil { + s = *r + } + return s, err + }).(LookupEncryptionAtRestPrivateEndpointResultOutput) +} + +// A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint. +type LookupEncryptionAtRestPrivateEndpointOutputArgs struct { + // Label that identifies the cloud provider of the private endpoint. + CloudProvider pulumi.StringInput `pulumi:"cloudProvider"` + // Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + Id pulumi.StringInput `pulumi:"id"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupEncryptionAtRestPrivateEndpointOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionAtRestPrivateEndpointArgs)(nil)).Elem() +} + +// A collection of values returned by getEncryptionAtRestPrivateEndpoint. +type LookupEncryptionAtRestPrivateEndpointResultOutput struct{ *pulumi.OutputState } + +func (LookupEncryptionAtRestPrivateEndpointResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionAtRestPrivateEndpointResult)(nil)).Elem() +} + +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) ToLookupEncryptionAtRestPrivateEndpointResultOutput() LookupEncryptionAtRestPrivateEndpointResultOutput { + return o +} + +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) ToLookupEncryptionAtRestPrivateEndpointResultOutputWithContext(ctx context.Context) LookupEncryptionAtRestPrivateEndpointResultOutput { + return o +} + +// Label that identifies the cloud provider of the private endpoint. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) CloudProvider() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.CloudProvider }).(pulumi.StringOutput) +} + +// Error message for failures associated with the Encryption At Rest private endpoint. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) ErrorMessage() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.ErrorMessage }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Connection name of the Azure Private Endpoint. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) PrivateEndpointConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.PrivateEndpointConnectionName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// Cloud provider region in which the Encryption At Rest private endpoint is located. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) RegionName() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.RegionName }).(pulumi.StringOutput) +} + +// State of the Encryption At Rest private endpoint. +func (o LookupEncryptionAtRestPrivateEndpointResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointResult) string { return v.Status }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEncryptionAtRestPrivateEndpointResultOutput{}) +} diff --git a/sdk/go/mongodbatlas/getEncryptionAtRestPrivateEndpoints.go b/sdk/go/mongodbatlas/getEncryptionAtRestPrivateEndpoints.go new file mode 100644 index 00000000..cdbbc51f --- /dev/null +++ b/sdk/go/mongodbatlas/getEncryptionAtRestPrivateEndpoints.go @@ -0,0 +1,146 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Data Source: getEncryptionAtRestPrivateEndpoints +// +// `getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. +// +// > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. +// To 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). +// +// ## Example Usage +// +// ### S +// +// > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// plural, err := mongodbatlas.LookupEncryptionAtRestPrivateEndpoints(ctx, &mongodbatlas.LookupEncryptionAtRestPrivateEndpointsArgs{ +// ProjectId: atlasProjectId, +// CloudProvider: "AZURE", +// }, nil) +// if err != nil { +// return err +// } +// ctx.Export("numberOfEndpoints", pulumi.Int(len(plural.Results))) +// return nil +// }) +// } +// +// ``` +func LookupEncryptionAtRestPrivateEndpoints(ctx *pulumi.Context, args *LookupEncryptionAtRestPrivateEndpointsArgs, opts ...pulumi.InvokeOption) (*LookupEncryptionAtRestPrivateEndpointsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupEncryptionAtRestPrivateEndpointsResult + err := ctx.Invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getEncryptionAtRestPrivateEndpoints. +type LookupEncryptionAtRestPrivateEndpointsArgs struct { + // Human-readable label that identifies the cloud provider for the private endpoints to return. + CloudProvider string `pulumi:"cloudProvider"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getEncryptionAtRestPrivateEndpoints. +type LookupEncryptionAtRestPrivateEndpointsResult struct { + // Human-readable label that identifies the cloud provider for the private endpoints to return. + CloudProvider string `pulumi:"cloudProvider"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` + // List of returned documents that MongoDB Cloud providers when completing this request. + Results []GetEncryptionAtRestPrivateEndpointsResult `pulumi:"results"` +} + +func LookupEncryptionAtRestPrivateEndpointsOutput(ctx *pulumi.Context, args LookupEncryptionAtRestPrivateEndpointsOutputArgs, opts ...pulumi.InvokeOption) LookupEncryptionAtRestPrivateEndpointsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupEncryptionAtRestPrivateEndpointsResult, error) { + args := v.(LookupEncryptionAtRestPrivateEndpointsArgs) + r, err := LookupEncryptionAtRestPrivateEndpoints(ctx, &args, opts...) + var s LookupEncryptionAtRestPrivateEndpointsResult + if r != nil { + s = *r + } + return s, err + }).(LookupEncryptionAtRestPrivateEndpointsResultOutput) +} + +// A collection of arguments for invoking getEncryptionAtRestPrivateEndpoints. +type LookupEncryptionAtRestPrivateEndpointsOutputArgs struct { + // Human-readable label that identifies the cloud provider for the private endpoints to return. + CloudProvider pulumi.StringInput `pulumi:"cloudProvider"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupEncryptionAtRestPrivateEndpointsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionAtRestPrivateEndpointsArgs)(nil)).Elem() +} + +// A collection of values returned by getEncryptionAtRestPrivateEndpoints. +type LookupEncryptionAtRestPrivateEndpointsResultOutput struct{ *pulumi.OutputState } + +func (LookupEncryptionAtRestPrivateEndpointsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionAtRestPrivateEndpointsResult)(nil)).Elem() +} + +func (o LookupEncryptionAtRestPrivateEndpointsResultOutput) ToLookupEncryptionAtRestPrivateEndpointsResultOutput() LookupEncryptionAtRestPrivateEndpointsResultOutput { + return o +} + +func (o LookupEncryptionAtRestPrivateEndpointsResultOutput) ToLookupEncryptionAtRestPrivateEndpointsResultOutputWithContext(ctx context.Context) LookupEncryptionAtRestPrivateEndpointsResultOutput { + return o +} + +// Human-readable label that identifies the cloud provider for the private endpoints to return. +func (o LookupEncryptionAtRestPrivateEndpointsResultOutput) CloudProvider() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointsResult) string { return v.CloudProvider }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupEncryptionAtRestPrivateEndpointsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. +func (o LookupEncryptionAtRestPrivateEndpointsResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointsResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// List of returned documents that MongoDB Cloud providers when completing this request. +func (o LookupEncryptionAtRestPrivateEndpointsResultOutput) Results() GetEncryptionAtRestPrivateEndpointsResultArrayOutput { + return o.ApplyT(func(v LookupEncryptionAtRestPrivateEndpointsResult) []GetEncryptionAtRestPrivateEndpointsResult { + return v.Results + }).(GetEncryptionAtRestPrivateEndpointsResultArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEncryptionAtRestPrivateEndpointsResultOutput{}) +} diff --git a/sdk/go/mongodbatlas/getProject.go b/sdk/go/mongodbatlas/getProject.go index 8e330a4c..8b700b21 100644 --- a/sdk/go/mongodbatlas/getProject.go +++ b/sdk/go/mongodbatlas/getProject.go @@ -149,7 +149,9 @@ type LookupProjectResult struct { // The ISO-8601-formatted timestamp of when Atlas created the project. Created string `pulumi:"created"` Id string `pulumi:"id"` - // IP addresses in a project categorized by services. See IP Addresses. + // IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. + // + // Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. IpAddresses GetProjectIpAddresses `pulumi:"ipAddresses"` // Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. IsCollectDatabaseSpecificsStatisticsEnabled bool `pulumi:"isCollectDatabaseSpecificsStatisticsEnabled"` @@ -234,7 +236,9 @@ func (o LookupProjectResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupProjectResult) string { return v.Id }).(pulumi.StringOutput) } -// IP addresses in a project categorized by services. See IP Addresses. +// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. +// +// Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. func (o LookupProjectResultOutput) IpAddresses() GetProjectIpAddressesOutput { return o.ApplyT(func(v LookupProjectResult) GetProjectIpAddresses { return v.IpAddresses }).(GetProjectIpAddressesOutput) } diff --git a/sdk/go/mongodbatlas/getProjectIpAddresses.go b/sdk/go/mongodbatlas/getProjectIpAddresses.go new file mode 100644 index 00000000..37866298 --- /dev/null +++ b/sdk/go/mongodbatlas/getProjectIpAddresses.go @@ -0,0 +1,126 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Data Source: getProjectIpAddresses +// +// `getProjectIpAddresses` returns the IP addresses in a project categorized by services. +// +// ## Example Usage +// +// ### S +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// test, err := mongodbatlas.LookupProjectIpAddresses(ctx, &mongodbatlas.LookupProjectIpAddressesArgs{ +// ProjectId: projectId, +// }, nil) +// if err != nil { +// return err +// } +// ctx.Export("projectServices", test.Services) +// return nil +// }) +// } +// +// ``` +func LookupProjectIpAddresses(ctx *pulumi.Context, args *LookupProjectIpAddressesArgs, opts ...pulumi.InvokeOption) (*LookupProjectIpAddressesResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupProjectIpAddressesResult + err := ctx.Invoke("mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getProjectIpAddresses. +type LookupProjectIpAddressesArgs struct { + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getProjectIpAddresses. +type LookupProjectIpAddressesResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` + // List of IP addresses in a project categorized by services. + Services GetProjectIpAddressesServices `pulumi:"services"` +} + +func LookupProjectIpAddressesOutput(ctx *pulumi.Context, args LookupProjectIpAddressesOutputArgs, opts ...pulumi.InvokeOption) LookupProjectIpAddressesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupProjectIpAddressesResult, error) { + args := v.(LookupProjectIpAddressesArgs) + r, err := LookupProjectIpAddresses(ctx, &args, opts...) + var s LookupProjectIpAddressesResult + if r != nil { + s = *r + } + return s, err + }).(LookupProjectIpAddressesResultOutput) +} + +// A collection of arguments for invoking getProjectIpAddresses. +type LookupProjectIpAddressesOutputArgs struct { + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupProjectIpAddressesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupProjectIpAddressesArgs)(nil)).Elem() +} + +// A collection of values returned by getProjectIpAddresses. +type LookupProjectIpAddressesResultOutput struct{ *pulumi.OutputState } + +func (LookupProjectIpAddressesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupProjectIpAddressesResult)(nil)).Elem() +} + +func (o LookupProjectIpAddressesResultOutput) ToLookupProjectIpAddressesResultOutput() LookupProjectIpAddressesResultOutput { + return o +} + +func (o LookupProjectIpAddressesResultOutput) ToLookupProjectIpAddressesResultOutputWithContext(ctx context.Context) LookupProjectIpAddressesResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupProjectIpAddressesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupProjectIpAddressesResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. +func (o LookupProjectIpAddressesResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupProjectIpAddressesResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// List of IP addresses in a project categorized by services. +func (o LookupProjectIpAddressesResultOutput) Services() GetProjectIpAddressesServicesOutput { + return o.ApplyT(func(v LookupProjectIpAddressesResult) GetProjectIpAddressesServices { return v.Services }).(GetProjectIpAddressesServicesOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupProjectIpAddressesResultOutput{}) +} diff --git a/sdk/go/mongodbatlas/getStreamProcessor.go b/sdk/go/mongodbatlas/getStreamProcessor.go new file mode 100644 index 00000000..98fe1fea --- /dev/null +++ b/sdk/go/mongodbatlas/getStreamProcessor.go @@ -0,0 +1,133 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Data Source: StreamProcessor +// +// `StreamProcessor` describes a stream processor. +// +// ## Example Usage +func LookupStreamProcessor(ctx *pulumi.Context, args *LookupStreamProcessorArgs, opts ...pulumi.InvokeOption) (*LookupStreamProcessorResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupStreamProcessorResult + err := ctx.Invoke("mongodbatlas:index/getStreamProcessor:getStreamProcessor", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getStreamProcessor. +type LookupStreamProcessorArgs struct { + // Human-readable label that identifies the stream instance. + InstanceName string `pulumi:"instanceName"` + // Human-readable label that identifies the stream processor. + ProcessorName string `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getStreamProcessor. +type LookupStreamProcessorResult struct { + Id string `pulumi:"id"` + // Human-readable label that identifies the stream instance. + InstanceName string `pulumi:"instanceName"` + Options GetStreamProcessorOptions `pulumi:"options"` + Pipeline string `pulumi:"pipeline"` + // Human-readable label that identifies the stream processor. + ProcessorName string `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId string `pulumi:"projectId"` + State string `pulumi:"state"` + Stats string `pulumi:"stats"` +} + +func LookupStreamProcessorOutput(ctx *pulumi.Context, args LookupStreamProcessorOutputArgs, opts ...pulumi.InvokeOption) LookupStreamProcessorResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupStreamProcessorResult, error) { + args := v.(LookupStreamProcessorArgs) + r, err := LookupStreamProcessor(ctx, &args, opts...) + var s LookupStreamProcessorResult + if r != nil { + s = *r + } + return s, err + }).(LookupStreamProcessorResultOutput) +} + +// A collection of arguments for invoking getStreamProcessor. +type LookupStreamProcessorOutputArgs struct { + // Human-readable label that identifies the stream instance. + InstanceName pulumi.StringInput `pulumi:"instanceName"` + // Human-readable label that identifies the stream processor. + ProcessorName pulumi.StringInput `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupStreamProcessorOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStreamProcessorArgs)(nil)).Elem() +} + +// A collection of values returned by getStreamProcessor. +type LookupStreamProcessorResultOutput struct{ *pulumi.OutputState } + +func (LookupStreamProcessorResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStreamProcessorResult)(nil)).Elem() +} + +func (o LookupStreamProcessorResultOutput) ToLookupStreamProcessorResultOutput() LookupStreamProcessorResultOutput { + return o +} + +func (o LookupStreamProcessorResultOutput) ToLookupStreamProcessorResultOutputWithContext(ctx context.Context) LookupStreamProcessorResultOutput { + return o +} + +func (o LookupStreamProcessorResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Human-readable label that identifies the stream instance. +func (o LookupStreamProcessorResultOutput) InstanceName() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.InstanceName }).(pulumi.StringOutput) +} + +func (o LookupStreamProcessorResultOutput) Options() GetStreamProcessorOptionsOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) GetStreamProcessorOptions { return v.Options }).(GetStreamProcessorOptionsOutput) +} + +func (o LookupStreamProcessorResultOutput) Pipeline() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.Pipeline }).(pulumi.StringOutput) +} + +// Human-readable label that identifies the stream processor. +func (o LookupStreamProcessorResultOutput) ProcessorName() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.ProcessorName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. +func (o LookupStreamProcessorResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +func (o LookupStreamProcessorResultOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.State }).(pulumi.StringOutput) +} + +func (o LookupStreamProcessorResultOutput) Stats() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorResult) string { return v.Stats }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupStreamProcessorResultOutput{}) +} diff --git a/sdk/go/mongodbatlas/getStreamProcessors.go b/sdk/go/mongodbatlas/getStreamProcessors.go new file mode 100644 index 00000000..fec2915a --- /dev/null +++ b/sdk/go/mongodbatlas/getStreamProcessors.go @@ -0,0 +1,109 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## # Data Source: getStreamProcessors +// +// `getStreamProcessors` returns all stream processors in a stream instance. +// +// ## Example Usage +func LookupStreamProcessors(ctx *pulumi.Context, args *LookupStreamProcessorsArgs, opts ...pulumi.InvokeOption) (*LookupStreamProcessorsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupStreamProcessorsResult + err := ctx.Invoke("mongodbatlas:index/getStreamProcessors:getStreamProcessors", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getStreamProcessors. +type LookupStreamProcessorsArgs struct { + // Human-readable label that identifies the stream instance. + InstanceName string `pulumi:"instanceName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId string `pulumi:"projectId"` +} + +// A collection of values returned by getStreamProcessors. +type LookupStreamProcessorsResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Human-readable label that identifies the stream instance. + InstanceName string `pulumi:"instanceName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId string `pulumi:"projectId"` + Results []GetStreamProcessorsResult `pulumi:"results"` +} + +func LookupStreamProcessorsOutput(ctx *pulumi.Context, args LookupStreamProcessorsOutputArgs, opts ...pulumi.InvokeOption) LookupStreamProcessorsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupStreamProcessorsResult, error) { + args := v.(LookupStreamProcessorsArgs) + r, err := LookupStreamProcessors(ctx, &args, opts...) + var s LookupStreamProcessorsResult + if r != nil { + s = *r + } + return s, err + }).(LookupStreamProcessorsResultOutput) +} + +// A collection of arguments for invoking getStreamProcessors. +type LookupStreamProcessorsOutputArgs struct { + // Human-readable label that identifies the stream instance. + InstanceName pulumi.StringInput `pulumi:"instanceName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LookupStreamProcessorsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStreamProcessorsArgs)(nil)).Elem() +} + +// A collection of values returned by getStreamProcessors. +type LookupStreamProcessorsResultOutput struct{ *pulumi.OutputState } + +func (LookupStreamProcessorsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStreamProcessorsResult)(nil)).Elem() +} + +func (o LookupStreamProcessorsResultOutput) ToLookupStreamProcessorsResultOutput() LookupStreamProcessorsResultOutput { + return o +} + +func (o LookupStreamProcessorsResultOutput) ToLookupStreamProcessorsResultOutputWithContext(ctx context.Context) LookupStreamProcessorsResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupStreamProcessorsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Human-readable label that identifies the stream instance. +func (o LookupStreamProcessorsResultOutput) InstanceName() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorsResult) string { return v.InstanceName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. +func (o LookupStreamProcessorsResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupStreamProcessorsResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +func (o LookupStreamProcessorsResultOutput) Results() GetStreamProcessorsResultArrayOutput { + return o.ApplyT(func(v LookupStreamProcessorsResult) []GetStreamProcessorsResult { return v.Results }).(GetStreamProcessorsResultArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupStreamProcessorsResultOutput{}) +} diff --git a/sdk/go/mongodbatlas/init.go b/sdk/go/mongodbatlas/init.go index c513bd78..08934b70 100644 --- a/sdk/go/mongodbatlas/init.go +++ b/sdk/go/mongodbatlas/init.go @@ -61,6 +61,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &DatabaseUser{} case "mongodbatlas:index/encryptionAtRest:EncryptionAtRest": r = &EncryptionAtRest{} + case "mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint": + r = &EncryptionAtRestPrivateEndpoint{} case "mongodbatlas:index/eventTrigger:EventTrigger": r = &EventTrigger{} case "mongodbatlas:index/federatedDatabaseInstance:FederatedDatabaseInstance": @@ -123,6 +125,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &StreamConnection{} case "mongodbatlas:index/streamInstance:StreamInstance": r = &StreamInstance{} + case "mongodbatlas:index/streamProcessor:StreamProcessor": + r = &StreamProcessor{} case "mongodbatlas:index/team:Team": r = &Team{} case "mongodbatlas:index/teams:Teams": @@ -262,6 +266,11 @@ func init() { "index/encryptionAtRest", &module{version}, ) + pulumi.RegisterResourceModule( + "mongodbatlas", + "index/encryptionAtRestPrivateEndpoint", + &module{version}, + ) pulumi.RegisterResourceModule( "mongodbatlas", "index/eventTrigger", @@ -417,6 +426,11 @@ func init() { "index/streamInstance", &module{version}, ) + pulumi.RegisterResourceModule( + "mongodbatlas", + "index/streamProcessor", + &module{version}, + ) pulumi.RegisterResourceModule( "mongodbatlas", "index/team", diff --git a/sdk/go/mongodbatlas/onlineArchive.go b/sdk/go/mongodbatlas/onlineArchive.go index 974ccbbc..af3ba16a 100644 --- a/sdk/go/mongodbatlas/onlineArchive.go +++ b/sdk/go/mongodbatlas/onlineArchive.go @@ -195,7 +195,8 @@ type OnlineArchive struct { // Regular frequency and duration when archiving process occurs. See schedule. Schedule OnlineArchiveSchedulePtrOutput `pulumi:"schedule"` // Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted - State pulumi.StringOutput `pulumi:"state"` + State pulumi.StringOutput `pulumi:"state"` + // 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 `false`. SyncCreation pulumi.BoolPtrOutput `pulumi:"syncCreation"` } @@ -269,8 +270,9 @@ type onlineArchiveState struct { // Regular frequency and duration when archiving process occurs. See schedule. Schedule *OnlineArchiveSchedule `pulumi:"schedule"` // Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted - State *string `pulumi:"state"` - SyncCreation *bool `pulumi:"syncCreation"` + State *string `pulumi:"state"` + // 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 `false`. + SyncCreation *bool `pulumi:"syncCreation"` } type OnlineArchiveState struct { @@ -299,7 +301,8 @@ type OnlineArchiveState struct { // Regular frequency and duration when archiving process occurs. See schedule. Schedule OnlineArchiveSchedulePtrInput // Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted - State pulumi.StringPtrInput + State pulumi.StringPtrInput + // 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 `false`. SyncCreation pulumi.BoolPtrInput } @@ -329,8 +332,9 @@ type onlineArchiveArgs struct { // The unique ID for the project ProjectId string `pulumi:"projectId"` // Regular frequency and duration when archiving process occurs. See schedule. - Schedule *OnlineArchiveSchedule `pulumi:"schedule"` - SyncCreation *bool `pulumi:"syncCreation"` + Schedule *OnlineArchiveSchedule `pulumi:"schedule"` + // 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 `false`. + SyncCreation *bool `pulumi:"syncCreation"` } // The set of arguments for constructing a OnlineArchive resource. @@ -356,7 +360,8 @@ type OnlineArchiveArgs struct { // The unique ID for the project ProjectId pulumi.StringInput // Regular frequency and duration when archiving process occurs. See schedule. - Schedule OnlineArchiveSchedulePtrInput + Schedule OnlineArchiveSchedulePtrInput + // 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 `false`. SyncCreation pulumi.BoolPtrInput } @@ -512,6 +517,7 @@ func (o OnlineArchiveOutput) State() pulumi.StringOutput { return o.ApplyT(func(v *OnlineArchive) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) } +// 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 `false`. func (o OnlineArchiveOutput) SyncCreation() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OnlineArchive) pulumi.BoolPtrOutput { return v.SyncCreation }).(pulumi.BoolPtrOutput) } diff --git a/sdk/go/mongodbatlas/project.go b/sdk/go/mongodbatlas/project.go index 145510af..2623b77b 100644 --- a/sdk/go/mongodbatlas/project.go +++ b/sdk/go/mongodbatlas/project.go @@ -96,7 +96,9 @@ type Project struct { ClusterCount pulumi.IntOutput `pulumi:"clusterCount"` // The ISO-8601-formatted timestamp of when Atlas created the project. Created pulumi.StringOutput `pulumi:"created"` - // IP addresses in a project categorized by services. See IP Addresses. + // IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. + // + // Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. IpAddresses ProjectIpAddressesOutput `pulumi:"ipAddresses"` // 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. IsCollectDatabaseSpecificsStatisticsEnabled pulumi.BoolOutput `pulumi:"isCollectDatabaseSpecificsStatisticsEnabled"` @@ -163,7 +165,9 @@ type projectState struct { ClusterCount *int `pulumi:"clusterCount"` // The ISO-8601-formatted timestamp of when Atlas created the project. Created *string `pulumi:"created"` - // IP addresses in a project categorized by services. See IP Addresses. + // IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. + // + // Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. IpAddresses *ProjectIpAddresses `pulumi:"ipAddresses"` // 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. IsCollectDatabaseSpecificsStatisticsEnabled *bool `pulumi:"isCollectDatabaseSpecificsStatisticsEnabled"` @@ -198,7 +202,9 @@ type ProjectState struct { ClusterCount pulumi.IntPtrInput // The ISO-8601-formatted timestamp of when Atlas created the project. Created pulumi.StringPtrInput - // IP addresses in a project categorized by services. See IP Addresses. + // IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. + // + // Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. IpAddresses ProjectIpAddressesPtrInput // 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. IsCollectDatabaseSpecificsStatisticsEnabled pulumi.BoolPtrInput @@ -388,7 +394,9 @@ func (o ProjectOutput) Created() pulumi.StringOutput { return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.Created }).(pulumi.StringOutput) } -// IP addresses in a project categorized by services. See IP Addresses. +// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. +// +// Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. func (o ProjectOutput) IpAddresses() ProjectIpAddressesOutput { return o.ApplyT(func(v *Project) ProjectIpAddressesOutput { return v.IpAddresses }).(ProjectIpAddressesOutput) } diff --git a/sdk/go/mongodbatlas/pulumiTypes.go b/sdk/go/mongodbatlas/pulumiTypes.go index 2b7c702e..049b98b6 100644 --- a/sdk/go/mongodbatlas/pulumiTypes.go +++ b/sdk/go/mongodbatlas/pulumiTypes.go @@ -14,6 +14,8 @@ import ( var _ = internal.GetEnvOrDefault type AdvancedClusterAdvancedConfiguration struct { + // 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. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds *int `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -59,6 +61,8 @@ type AdvancedClusterAdvancedConfigurationInput interface { } type AdvancedClusterAdvancedConfigurationArgs struct { + // 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. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds pulumi.IntPtrInput `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -169,6 +173,13 @@ func (o AdvancedClusterAdvancedConfigurationOutput) ToAdvancedClusterAdvancedCon }).(AdvancedClusterAdvancedConfigurationPtrOutput) } +// 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. +func (o AdvancedClusterAdvancedConfigurationOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v AdvancedClusterAdvancedConfiguration) *int { + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntPtrOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -257,6 +268,16 @@ func (o AdvancedClusterAdvancedConfigurationPtrOutput) Elem() AdvancedClusterAdv }).(AdvancedClusterAdvancedConfigurationOutput) } +// 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. +func (o AdvancedClusterAdvancedConfigurationPtrOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AdvancedClusterAdvancedConfiguration) *int { + if v == nil { + return nil + } + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntPtrOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -6891,6 +6912,8 @@ func (o CloudProviderAccessSetupAzureConfigArrayOutput) Index(i pulumi.IntInput) } type ClusterAdvancedConfiguration struct { + // 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. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds *int `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -6936,6 +6959,8 @@ type ClusterAdvancedConfigurationInput interface { } type ClusterAdvancedConfigurationArgs struct { + // 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. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds pulumi.IntPtrInput `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -7046,6 +7071,13 @@ func (o ClusterAdvancedConfigurationOutput) ToClusterAdvancedConfigurationPtrOut }).(ClusterAdvancedConfigurationPtrOutput) } +// 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. +func (o ClusterAdvancedConfigurationOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterAdvancedConfiguration) *int { + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntPtrOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -7134,6 +7166,16 @@ func (o ClusterAdvancedConfigurationPtrOutput) Elem() ClusterAdvancedConfigurati }).(ClusterAdvancedConfigurationOutput) } +// 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. +func (o ClusterAdvancedConfigurationPtrOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ClusterAdvancedConfiguration) *int { + if v == nil { + return nil + } + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntPtrOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -10484,16 +10526,20 @@ func (o DatabaseUserScopeArrayOutput) Index(i pulumi.IntInput) DatabaseUserScope } type EncryptionAtRestAwsKmsConfig struct { + // 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). AccessKeyId *string `pulumi:"accessKeyId"` - // The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + // Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. CustomerMasterKeyId *string `pulumi:"customerMasterKeyId"` - // Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + // Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. Enabled *bool `pulumi:"enabled"` - // The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + // 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. Region *string `pulumi:"region"` - // ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `roleId` attribute of the `mongodbatlasCloudProviderAccess` resource. - RoleId *string `pulumi:"roleId"` + // 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. + RoleId *string `pulumi:"roleId"` + // 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. SecretAccessKey *string `pulumi:"secretAccessKey"` + // Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid *bool `pulumi:"valid"` } // EncryptionAtRestAwsKmsConfigInput is an input type that accepts EncryptionAtRestAwsKmsConfigArgs and EncryptionAtRestAwsKmsConfigOutput values. @@ -10508,16 +10554,20 @@ type EncryptionAtRestAwsKmsConfigInput interface { } type EncryptionAtRestAwsKmsConfigArgs struct { + // 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). AccessKeyId pulumi.StringPtrInput `pulumi:"accessKeyId"` - // The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + // Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. CustomerMasterKeyId pulumi.StringPtrInput `pulumi:"customerMasterKeyId"` - // Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + // Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + // 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. Region pulumi.StringPtrInput `pulumi:"region"` - // ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `roleId` attribute of the `mongodbatlasCloudProviderAccess` resource. - RoleId pulumi.StringPtrInput `pulumi:"roleId"` + // 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. + RoleId pulumi.StringPtrInput `pulumi:"roleId"` + // 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. SecretAccessKey pulumi.StringPtrInput `pulumi:"secretAccessKey"` + // Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid pulumi.BoolPtrInput `pulumi:"valid"` } func (EncryptionAtRestAwsKmsConfigArgs) ElementType() reflect.Type { @@ -10597,34 +10647,41 @@ func (o EncryptionAtRestAwsKmsConfigOutput) ToEncryptionAtRestAwsKmsConfigPtrOut }).(EncryptionAtRestAwsKmsConfigPtrOutput) } +// 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). func (o EncryptionAtRestAwsKmsConfigOutput) AccessKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *string { return v.AccessKeyId }).(pulumi.StringPtrOutput) } -// The AWS customer master key used to encrypt and decrypt the MongoDB master keys. +// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. func (o EncryptionAtRestAwsKmsConfigOutput) CustomerMasterKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *string { return v.CustomerMasterKeyId }).(pulumi.StringPtrOutput) } -// Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. +// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. func (o EncryptionAtRestAwsKmsConfigOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 +// 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. func (o EncryptionAtRestAwsKmsConfigOutput) Region() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *string { return v.Region }).(pulumi.StringPtrOutput) } -// ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `roleId` attribute of the `mongodbatlasCloudProviderAccess` resource. +// 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. func (o EncryptionAtRestAwsKmsConfigOutput) RoleId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *string { return v.RoleId }).(pulumi.StringPtrOutput) } +// 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. func (o EncryptionAtRestAwsKmsConfigOutput) SecretAccessKey() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *string { return v.SecretAccessKey }).(pulumi.StringPtrOutput) } +// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. +func (o EncryptionAtRestAwsKmsConfigOutput) Valid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionAtRestAwsKmsConfig) *bool { return v.Valid }).(pulumi.BoolPtrOutput) +} + type EncryptionAtRestAwsKmsConfigPtrOutput struct{ *pulumi.OutputState } func (EncryptionAtRestAwsKmsConfigPtrOutput) ElementType() reflect.Type { @@ -10649,6 +10706,7 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) Elem() EncryptionAtRestAwsKmsConf }).(EncryptionAtRestAwsKmsConfigOutput) } +// 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). func (o EncryptionAtRestAwsKmsConfigPtrOutput) AccessKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *string { if v == nil { @@ -10658,7 +10716,7 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) AccessKeyId() pulumi.StringPtrOut }).(pulumi.StringPtrOutput) } -// The AWS customer master key used to encrypt and decrypt the MongoDB master keys. +// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. func (o EncryptionAtRestAwsKmsConfigPtrOutput) CustomerMasterKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *string { if v == nil { @@ -10668,7 +10726,7 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) CustomerMasterKeyId() pulumi.Stri }).(pulumi.StringPtrOutput) } -// Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. +// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. func (o EncryptionAtRestAwsKmsConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *bool { if v == nil { @@ -10678,7 +10736,7 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 +// 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. func (o EncryptionAtRestAwsKmsConfigPtrOutput) Region() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *string { if v == nil { @@ -10688,7 +10746,7 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) Region() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `roleId` attribute of the `mongodbatlasCloudProviderAccess` resource. +// 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. func (o EncryptionAtRestAwsKmsConfigPtrOutput) RoleId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *string { if v == nil { @@ -10698,6 +10756,7 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) RoleId() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// 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. func (o EncryptionAtRestAwsKmsConfigPtrOutput) SecretAccessKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *string { if v == nil { @@ -10707,25 +10766,39 @@ func (o EncryptionAtRestAwsKmsConfigPtrOutput) SecretAccessKey() pulumi.StringPt }).(pulumi.StringPtrOutput) } +// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. +func (o EncryptionAtRestAwsKmsConfigPtrOutput) Valid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EncryptionAtRestAwsKmsConfig) *bool { + if v == nil { + return nil + } + return v.Valid + }).(pulumi.BoolPtrOutput) +} + type EncryptionAtRestAzureKeyVaultConfig struct { - // The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + // Azure environment in which your account credentials reside. AzureEnvironment *string `pulumi:"azureEnvironment"` - // The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + // Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. ClientId *string `pulumi:"clientId"` - // Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. Enabled *bool `pulumi:"enabled"` - // The unique identifier of a key in an Azure Key Vault. + // Web address with a unique key that identifies for your Azure Key Vault. KeyIdentifier *string `pulumi:"keyIdentifier"` - // The name of an Azure Key Vault containing your key. + // Unique string that identifies the Azure Key Vault that contains your key. KeyVaultName *string `pulumi:"keyVaultName"` - // The name of the Azure Resource group that contains an Azure Key Vault. + // Enable connection to your Azure Key Vault over private networking. + RequirePrivateNetworking *bool `pulumi:"requirePrivateNetworking"` + // Name of the Azure resource group that contains your Azure Key Vault. ResourceGroupName *string `pulumi:"resourceGroupName"` - // The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + // 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. Secret *string `pulumi:"secret"` - // The unique identifier associated with an Azure subscription. + // Unique 36-hexadecimal character string that identifies your Azure subscription. SubscriptionId *string `pulumi:"subscriptionId"` - // The unique identifier for an Azure AD tenant within an Azure subscription. + // Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. TenantId *string `pulumi:"tenantId"` + // Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + Valid *bool `pulumi:"valid"` } // EncryptionAtRestAzureKeyVaultConfigInput is an input type that accepts EncryptionAtRestAzureKeyVaultConfigArgs and EncryptionAtRestAzureKeyVaultConfigOutput values. @@ -10740,24 +10813,28 @@ type EncryptionAtRestAzureKeyVaultConfigInput interface { } type EncryptionAtRestAzureKeyVaultConfigArgs struct { - // The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + // Azure environment in which your account credentials reside. AzureEnvironment pulumi.StringPtrInput `pulumi:"azureEnvironment"` - // The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + // Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. ClientId pulumi.StringPtrInput `pulumi:"clientId"` - // Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // The unique identifier of a key in an Azure Key Vault. + // Web address with a unique key that identifies for your Azure Key Vault. KeyIdentifier pulumi.StringPtrInput `pulumi:"keyIdentifier"` - // The name of an Azure Key Vault containing your key. + // Unique string that identifies the Azure Key Vault that contains your key. KeyVaultName pulumi.StringPtrInput `pulumi:"keyVaultName"` - // The name of the Azure Resource group that contains an Azure Key Vault. + // Enable connection to your Azure Key Vault over private networking. + RequirePrivateNetworking pulumi.BoolPtrInput `pulumi:"requirePrivateNetworking"` + // Name of the Azure resource group that contains your Azure Key Vault. ResourceGroupName pulumi.StringPtrInput `pulumi:"resourceGroupName"` - // The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + // 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. Secret pulumi.StringPtrInput `pulumi:"secret"` - // The unique identifier associated with an Azure subscription. + // Unique 36-hexadecimal character string that identifies your Azure subscription. SubscriptionId pulumi.StringPtrInput `pulumi:"subscriptionId"` - // The unique identifier for an Azure AD tenant within an Azure subscription. + // Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. TenantId pulumi.StringPtrInput `pulumi:"tenantId"` + // Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + Valid pulumi.BoolPtrInput `pulumi:"valid"` } func (EncryptionAtRestAzureKeyVaultConfigArgs) ElementType() reflect.Type { @@ -10837,51 +10914,61 @@ func (o EncryptionAtRestAzureKeyVaultConfigOutput) ToEncryptionAtRestAzureKeyVau }).(EncryptionAtRestAzureKeyVaultConfigPtrOutput) } -// The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY +// Azure environment in which your account credentials reside. func (o EncryptionAtRestAzureKeyVaultConfigOutput) AzureEnvironment() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.AzureEnvironment }).(pulumi.StringPtrOutput) } -// The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. +// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. func (o EncryptionAtRestAzureKeyVaultConfigOutput) ClientId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.ClientId }).(pulumi.StringPtrOutput) } -// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. +// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. func (o EncryptionAtRestAzureKeyVaultConfigOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The unique identifier of a key in an Azure Key Vault. +// Web address with a unique key that identifies for your Azure Key Vault. func (o EncryptionAtRestAzureKeyVaultConfigOutput) KeyIdentifier() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.KeyIdentifier }).(pulumi.StringPtrOutput) } -// The name of an Azure Key Vault containing your key. +// Unique string that identifies the Azure Key Vault that contains your key. func (o EncryptionAtRestAzureKeyVaultConfigOutput) KeyVaultName() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.KeyVaultName }).(pulumi.StringPtrOutput) } -// The name of the Azure Resource group that contains an Azure Key Vault. +// Enable connection to your Azure Key Vault over private networking. +func (o EncryptionAtRestAzureKeyVaultConfigOutput) RequirePrivateNetworking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *bool { return v.RequirePrivateNetworking }).(pulumi.BoolPtrOutput) +} + +// Name of the Azure resource group that contains your Azure Key Vault. func (o EncryptionAtRestAzureKeyVaultConfigOutput) ResourceGroupName() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.ResourceGroupName }).(pulumi.StringPtrOutput) } -// The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. +// 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. func (o EncryptionAtRestAzureKeyVaultConfigOutput) Secret() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.Secret }).(pulumi.StringPtrOutput) } -// The unique identifier associated with an Azure subscription. +// Unique 36-hexadecimal character string that identifies your Azure subscription. func (o EncryptionAtRestAzureKeyVaultConfigOutput) SubscriptionId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.SubscriptionId }).(pulumi.StringPtrOutput) } -// The unique identifier for an Azure AD tenant within an Azure subscription. +// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. func (o EncryptionAtRestAzureKeyVaultConfigOutput) TenantId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *string { return v.TenantId }).(pulumi.StringPtrOutput) } +// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. +func (o EncryptionAtRestAzureKeyVaultConfigOutput) Valid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionAtRestAzureKeyVaultConfig) *bool { return v.Valid }).(pulumi.BoolPtrOutput) +} + type EncryptionAtRestAzureKeyVaultConfigPtrOutput struct{ *pulumi.OutputState } func (EncryptionAtRestAzureKeyVaultConfigPtrOutput) ElementType() reflect.Type { @@ -10906,7 +10993,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) Elem() EncryptionAtRestAzu }).(EncryptionAtRestAzureKeyVaultConfigOutput) } -// The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY +// Azure environment in which your account credentials reside. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) AzureEnvironment() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10916,7 +11003,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) AzureEnvironment() pulumi. }).(pulumi.StringPtrOutput) } -// The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. +// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) ClientId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10926,7 +11013,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) ClientId() pulumi.StringPt }).(pulumi.StringPtrOutput) } -// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. +// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *bool { if v == nil { @@ -10936,7 +11023,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) Enabled() pulumi.BoolPtrOu }).(pulumi.BoolPtrOutput) } -// The unique identifier of a key in an Azure Key Vault. +// Web address with a unique key that identifies for your Azure Key Vault. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) KeyIdentifier() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10946,7 +11033,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) KeyIdentifier() pulumi.Str }).(pulumi.StringPtrOutput) } -// The name of an Azure Key Vault containing your key. +// Unique string that identifies the Azure Key Vault that contains your key. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) KeyVaultName() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10956,7 +11043,17 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) KeyVaultName() pulumi.Stri }).(pulumi.StringPtrOutput) } -// The name of the Azure Resource group that contains an Azure Key Vault. +// Enable connection to your Azure Key Vault over private networking. +func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) RequirePrivateNetworking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *bool { + if v == nil { + return nil + } + return v.RequirePrivateNetworking + }).(pulumi.BoolPtrOutput) +} + +// Name of the Azure resource group that contains your Azure Key Vault. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) ResourceGroupName() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10966,7 +11063,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) ResourceGroupName() pulumi }).(pulumi.StringPtrOutput) } -// The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. +// 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. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) Secret() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10976,7 +11073,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) Secret() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// The unique identifier associated with an Azure subscription. +// Unique 36-hexadecimal character string that identifies your Azure subscription. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) SubscriptionId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10986,7 +11083,7 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) SubscriptionId() pulumi.St }).(pulumi.StringPtrOutput) } -// The unique identifier for an Azure AD tenant within an Azure subscription. +// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) TenantId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *string { if v == nil { @@ -10996,13 +11093,25 @@ func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) TenantId() pulumi.StringPt }).(pulumi.StringPtrOutput) } +// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. +func (o EncryptionAtRestAzureKeyVaultConfigPtrOutput) Valid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EncryptionAtRestAzureKeyVaultConfig) *bool { + if v == nil { + return nil + } + return v.Valid + }).(pulumi.BoolPtrOutput) +} + type EncryptionAtRestGoogleCloudKmsConfig struct { - // Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. Enabled *bool `pulumi:"enabled"` - // The Key Version Resource ID from your GCP account. + // Resource path that displays the key version resource ID for your Google Cloud KMS. KeyVersionResourceId *string `pulumi:"keyVersionResourceId"` - // String-formatted JSON object containing GCP KMS credentials from your GCP account. + // 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. ServiceAccountKey *string `pulumi:"serviceAccountKey"` + // Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid *bool `pulumi:"valid"` } // EncryptionAtRestGoogleCloudKmsConfigInput is an input type that accepts EncryptionAtRestGoogleCloudKmsConfigArgs and EncryptionAtRestGoogleCloudKmsConfigOutput values. @@ -11017,12 +11126,14 @@ type EncryptionAtRestGoogleCloudKmsConfigInput interface { } type EncryptionAtRestGoogleCloudKmsConfigArgs struct { - // Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // The Key Version Resource ID from your GCP account. + // Resource path that displays the key version resource ID for your Google Cloud KMS. KeyVersionResourceId pulumi.StringPtrInput `pulumi:"keyVersionResourceId"` - // String-formatted JSON object containing GCP KMS credentials from your GCP account. + // 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. ServiceAccountKey pulumi.StringPtrInput `pulumi:"serviceAccountKey"` + // Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid pulumi.BoolPtrInput `pulumi:"valid"` } func (EncryptionAtRestGoogleCloudKmsConfigArgs) ElementType() reflect.Type { @@ -11102,21 +11213,26 @@ func (o EncryptionAtRestGoogleCloudKmsConfigOutput) ToEncryptionAtRestGoogleClou }).(EncryptionAtRestGoogleCloudKmsConfigPtrOutput) } -// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. +// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. func (o EncryptionAtRestGoogleCloudKmsConfigOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v EncryptionAtRestGoogleCloudKmsConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The Key Version Resource ID from your GCP account. +// Resource path that displays the key version resource ID for your Google Cloud KMS. func (o EncryptionAtRestGoogleCloudKmsConfigOutput) KeyVersionResourceId() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestGoogleCloudKmsConfig) *string { return v.KeyVersionResourceId }).(pulumi.StringPtrOutput) } -// String-formatted JSON object containing GCP KMS credentials from your GCP account. +// 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. func (o EncryptionAtRestGoogleCloudKmsConfigOutput) ServiceAccountKey() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionAtRestGoogleCloudKmsConfig) *string { return v.ServiceAccountKey }).(pulumi.StringPtrOutput) } +// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. +func (o EncryptionAtRestGoogleCloudKmsConfigOutput) Valid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionAtRestGoogleCloudKmsConfig) *bool { return v.Valid }).(pulumi.BoolPtrOutput) +} + type EncryptionAtRestGoogleCloudKmsConfigPtrOutput struct{ *pulumi.OutputState } func (EncryptionAtRestGoogleCloudKmsConfigPtrOutput) ElementType() reflect.Type { @@ -11141,7 +11257,7 @@ func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) Elem() EncryptionAtRestGo }).(EncryptionAtRestGoogleCloudKmsConfigOutput) } -// Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. +// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *EncryptionAtRestGoogleCloudKmsConfig) *bool { if v == nil { @@ -11151,7 +11267,7 @@ func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) Enabled() pulumi.BoolPtrO }).(pulumi.BoolPtrOutput) } -// The Key Version Resource ID from your GCP account. +// Resource path that displays the key version resource ID for your Google Cloud KMS. func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) KeyVersionResourceId() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestGoogleCloudKmsConfig) *string { if v == nil { @@ -11161,7 +11277,7 @@ func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) KeyVersionResourceId() pu }).(pulumi.StringPtrOutput) } -// String-formatted JSON object containing GCP KMS credentials from your GCP account. +// 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. func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) ServiceAccountKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *EncryptionAtRestGoogleCloudKmsConfig) *string { if v == nil { @@ -11171,6 +11287,16 @@ func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) ServiceAccountKey() pulum }).(pulumi.StringPtrOutput) } +// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. +func (o EncryptionAtRestGoogleCloudKmsConfigPtrOutput) Valid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EncryptionAtRestGoogleCloudKmsConfig) *bool { + if v == nil { + return nil + } + return v.Valid + }).(pulumi.BoolPtrOutput) +} + type EventTriggerEventProcessors struct { AwsEventbridge *EventTriggerEventProcessorsAwsEventbridge `pulumi:"awsEventbridge"` } @@ -17538,6 +17664,318 @@ func (o StreamInstanceStreamConfigPtrOutput) Tier() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type StreamProcessorOptions struct { + // 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. + Dlq StreamProcessorOptionsDlq `pulumi:"dlq"` +} + +// StreamProcessorOptionsInput is an input type that accepts StreamProcessorOptionsArgs and StreamProcessorOptionsOutput values. +// You can construct a concrete instance of `StreamProcessorOptionsInput` via: +// +// StreamProcessorOptionsArgs{...} +type StreamProcessorOptionsInput interface { + pulumi.Input + + ToStreamProcessorOptionsOutput() StreamProcessorOptionsOutput + ToStreamProcessorOptionsOutputWithContext(context.Context) StreamProcessorOptionsOutput +} + +type StreamProcessorOptionsArgs struct { + // 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. + Dlq StreamProcessorOptionsDlqInput `pulumi:"dlq"` +} + +func (StreamProcessorOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOptions)(nil)).Elem() +} + +func (i StreamProcessorOptionsArgs) ToStreamProcessorOptionsOutput() StreamProcessorOptionsOutput { + return i.ToStreamProcessorOptionsOutputWithContext(context.Background()) +} + +func (i StreamProcessorOptionsArgs) ToStreamProcessorOptionsOutputWithContext(ctx context.Context) StreamProcessorOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOptionsOutput) +} + +func (i StreamProcessorOptionsArgs) ToStreamProcessorOptionsPtrOutput() StreamProcessorOptionsPtrOutput { + return i.ToStreamProcessorOptionsPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorOptionsArgs) ToStreamProcessorOptionsPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOptionsOutput).ToStreamProcessorOptionsPtrOutputWithContext(ctx) +} + +// StreamProcessorOptionsPtrInput is an input type that accepts StreamProcessorOptionsArgs, StreamProcessorOptionsPtr and StreamProcessorOptionsPtrOutput values. +// You can construct a concrete instance of `StreamProcessorOptionsPtrInput` via: +// +// StreamProcessorOptionsArgs{...} +// +// or: +// +// nil +type StreamProcessorOptionsPtrInput interface { + pulumi.Input + + ToStreamProcessorOptionsPtrOutput() StreamProcessorOptionsPtrOutput + ToStreamProcessorOptionsPtrOutputWithContext(context.Context) StreamProcessorOptionsPtrOutput +} + +type streamProcessorOptionsPtrType StreamProcessorOptionsArgs + +func StreamProcessorOptionsPtr(v *StreamProcessorOptionsArgs) StreamProcessorOptionsPtrInput { + return (*streamProcessorOptionsPtrType)(v) +} + +func (*streamProcessorOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOptions)(nil)).Elem() +} + +func (i *streamProcessorOptionsPtrType) ToStreamProcessorOptionsPtrOutput() StreamProcessorOptionsPtrOutput { + return i.ToStreamProcessorOptionsPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorOptionsPtrType) ToStreamProcessorOptionsPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOptionsPtrOutput) +} + +type StreamProcessorOptionsOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOptions)(nil)).Elem() +} + +func (o StreamProcessorOptionsOutput) ToStreamProcessorOptionsOutput() StreamProcessorOptionsOutput { + return o +} + +func (o StreamProcessorOptionsOutput) ToStreamProcessorOptionsOutputWithContext(ctx context.Context) StreamProcessorOptionsOutput { + return o +} + +func (o StreamProcessorOptionsOutput) ToStreamProcessorOptionsPtrOutput() StreamProcessorOptionsPtrOutput { + return o.ToStreamProcessorOptionsPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorOptionsOutput) ToStreamProcessorOptionsPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorOptions) *StreamProcessorOptions { + return &v + }).(StreamProcessorOptionsPtrOutput) +} + +// 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. +func (o StreamProcessorOptionsOutput) Dlq() StreamProcessorOptionsDlqOutput { + return o.ApplyT(func(v StreamProcessorOptions) StreamProcessorOptionsDlq { return v.Dlq }).(StreamProcessorOptionsDlqOutput) +} + +type StreamProcessorOptionsPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOptions)(nil)).Elem() +} + +func (o StreamProcessorOptionsPtrOutput) ToStreamProcessorOptionsPtrOutput() StreamProcessorOptionsPtrOutput { + return o +} + +func (o StreamProcessorOptionsPtrOutput) ToStreamProcessorOptionsPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsPtrOutput { + return o +} + +func (o StreamProcessorOptionsPtrOutput) Elem() StreamProcessorOptionsOutput { + return o.ApplyT(func(v *StreamProcessorOptions) StreamProcessorOptions { + if v != nil { + return *v + } + var ret StreamProcessorOptions + return ret + }).(StreamProcessorOptionsOutput) +} + +// 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. +func (o StreamProcessorOptionsPtrOutput) Dlq() StreamProcessorOptionsDlqPtrOutput { + return o.ApplyT(func(v *StreamProcessorOptions) *StreamProcessorOptionsDlq { + if v == nil { + return nil + } + return &v.Dlq + }).(StreamProcessorOptionsDlqPtrOutput) +} + +type StreamProcessorOptionsDlq struct { + // Name of the collection to use for the DLQ. + Coll string `pulumi:"coll"` + // Name of the connection to write DLQ messages to. Must be an Atlas connection. + ConnectionName string `pulumi:"connectionName"` + // Name of the database to use for the DLQ. + Db string `pulumi:"db"` +} + +// StreamProcessorOptionsDlqInput is an input type that accepts StreamProcessorOptionsDlqArgs and StreamProcessorOptionsDlqOutput values. +// You can construct a concrete instance of `StreamProcessorOptionsDlqInput` via: +// +// StreamProcessorOptionsDlqArgs{...} +type StreamProcessorOptionsDlqInput interface { + pulumi.Input + + ToStreamProcessorOptionsDlqOutput() StreamProcessorOptionsDlqOutput + ToStreamProcessorOptionsDlqOutputWithContext(context.Context) StreamProcessorOptionsDlqOutput +} + +type StreamProcessorOptionsDlqArgs struct { + // Name of the collection to use for the DLQ. + Coll pulumi.StringInput `pulumi:"coll"` + // Name of the connection to write DLQ messages to. Must be an Atlas connection. + ConnectionName pulumi.StringInput `pulumi:"connectionName"` + // Name of the database to use for the DLQ. + Db pulumi.StringInput `pulumi:"db"` +} + +func (StreamProcessorOptionsDlqArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOptionsDlq)(nil)).Elem() +} + +func (i StreamProcessorOptionsDlqArgs) ToStreamProcessorOptionsDlqOutput() StreamProcessorOptionsDlqOutput { + return i.ToStreamProcessorOptionsDlqOutputWithContext(context.Background()) +} + +func (i StreamProcessorOptionsDlqArgs) ToStreamProcessorOptionsDlqOutputWithContext(ctx context.Context) StreamProcessorOptionsDlqOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOptionsDlqOutput) +} + +func (i StreamProcessorOptionsDlqArgs) ToStreamProcessorOptionsDlqPtrOutput() StreamProcessorOptionsDlqPtrOutput { + return i.ToStreamProcessorOptionsDlqPtrOutputWithContext(context.Background()) +} + +func (i StreamProcessorOptionsDlqArgs) ToStreamProcessorOptionsDlqPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsDlqPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOptionsDlqOutput).ToStreamProcessorOptionsDlqPtrOutputWithContext(ctx) +} + +// StreamProcessorOptionsDlqPtrInput is an input type that accepts StreamProcessorOptionsDlqArgs, StreamProcessorOptionsDlqPtr and StreamProcessorOptionsDlqPtrOutput values. +// You can construct a concrete instance of `StreamProcessorOptionsDlqPtrInput` via: +// +// StreamProcessorOptionsDlqArgs{...} +// +// or: +// +// nil +type StreamProcessorOptionsDlqPtrInput interface { + pulumi.Input + + ToStreamProcessorOptionsDlqPtrOutput() StreamProcessorOptionsDlqPtrOutput + ToStreamProcessorOptionsDlqPtrOutputWithContext(context.Context) StreamProcessorOptionsDlqPtrOutput +} + +type streamProcessorOptionsDlqPtrType StreamProcessorOptionsDlqArgs + +func StreamProcessorOptionsDlqPtr(v *StreamProcessorOptionsDlqArgs) StreamProcessorOptionsDlqPtrInput { + return (*streamProcessorOptionsDlqPtrType)(v) +} + +func (*streamProcessorOptionsDlqPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOptionsDlq)(nil)).Elem() +} + +func (i *streamProcessorOptionsDlqPtrType) ToStreamProcessorOptionsDlqPtrOutput() StreamProcessorOptionsDlqPtrOutput { + return i.ToStreamProcessorOptionsDlqPtrOutputWithContext(context.Background()) +} + +func (i *streamProcessorOptionsDlqPtrType) ToStreamProcessorOptionsDlqPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsDlqPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOptionsDlqPtrOutput) +} + +type StreamProcessorOptionsDlqOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOptionsDlqOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamProcessorOptionsDlq)(nil)).Elem() +} + +func (o StreamProcessorOptionsDlqOutput) ToStreamProcessorOptionsDlqOutput() StreamProcessorOptionsDlqOutput { + return o +} + +func (o StreamProcessorOptionsDlqOutput) ToStreamProcessorOptionsDlqOutputWithContext(ctx context.Context) StreamProcessorOptionsDlqOutput { + return o +} + +func (o StreamProcessorOptionsDlqOutput) ToStreamProcessorOptionsDlqPtrOutput() StreamProcessorOptionsDlqPtrOutput { + return o.ToStreamProcessorOptionsDlqPtrOutputWithContext(context.Background()) +} + +func (o StreamProcessorOptionsDlqOutput) ToStreamProcessorOptionsDlqPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsDlqPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamProcessorOptionsDlq) *StreamProcessorOptionsDlq { + return &v + }).(StreamProcessorOptionsDlqPtrOutput) +} + +// Name of the collection to use for the DLQ. +func (o StreamProcessorOptionsDlqOutput) Coll() pulumi.StringOutput { + return o.ApplyT(func(v StreamProcessorOptionsDlq) string { return v.Coll }).(pulumi.StringOutput) +} + +// Name of the connection to write DLQ messages to. Must be an Atlas connection. +func (o StreamProcessorOptionsDlqOutput) ConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v StreamProcessorOptionsDlq) string { return v.ConnectionName }).(pulumi.StringOutput) +} + +// Name of the database to use for the DLQ. +func (o StreamProcessorOptionsDlqOutput) Db() pulumi.StringOutput { + return o.ApplyT(func(v StreamProcessorOptionsDlq) string { return v.Db }).(pulumi.StringOutput) +} + +type StreamProcessorOptionsDlqPtrOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOptionsDlqPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessorOptionsDlq)(nil)).Elem() +} + +func (o StreamProcessorOptionsDlqPtrOutput) ToStreamProcessorOptionsDlqPtrOutput() StreamProcessorOptionsDlqPtrOutput { + return o +} + +func (o StreamProcessorOptionsDlqPtrOutput) ToStreamProcessorOptionsDlqPtrOutputWithContext(ctx context.Context) StreamProcessorOptionsDlqPtrOutput { + return o +} + +func (o StreamProcessorOptionsDlqPtrOutput) Elem() StreamProcessorOptionsDlqOutput { + return o.ApplyT(func(v *StreamProcessorOptionsDlq) StreamProcessorOptionsDlq { + if v != nil { + return *v + } + var ret StreamProcessorOptionsDlq + return ret + }).(StreamProcessorOptionsDlqOutput) +} + +// Name of the collection to use for the DLQ. +func (o StreamProcessorOptionsDlqPtrOutput) Coll() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorOptionsDlq) *string { + if v == nil { + return nil + } + return &v.Coll + }).(pulumi.StringPtrOutput) +} + +// Name of the connection to write DLQ messages to. Must be an Atlas connection. +func (o StreamProcessorOptionsDlqPtrOutput) ConnectionName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorOptionsDlq) *string { + if v == nil { + return nil + } + return &v.ConnectionName + }).(pulumi.StringPtrOutput) +} + +// Name of the database to use for the DLQ. +func (o StreamProcessorOptionsDlqPtrOutput) Db() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamProcessorOptionsDlq) *string { + if v == nil { + return nil + } + return &v.Db + }).(pulumi.StringPtrOutput) +} + type X509AuthenticationDatabaseUserCertificate struct { CreatedAt *string `pulumi:"createdAt"` GroupId *string `pulumi:"groupId"` @@ -17905,6 +18343,8 @@ func (o GetAccessListApiKeysResultArrayOutput) Index(i pulumi.IntInput) GetAcces } type GetAdvancedClusterAdvancedConfiguration struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds int `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -17945,6 +18385,8 @@ type GetAdvancedClusterAdvancedConfigurationInput interface { } type GetAdvancedClusterAdvancedConfigurationArgs struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds pulumi.IntInput `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -18024,6 +18466,13 @@ func (o GetAdvancedClusterAdvancedConfigurationOutput) ToGetAdvancedClusterAdvan return o } +// (Optional) The minimum pre- and post-image retention time in seconds. +func (o GetAdvancedClusterAdvancedConfigurationOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntOutput { + return o.ApplyT(func(v GetAdvancedClusterAdvancedConfiguration) int { + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -19735,7 +20184,7 @@ type GetAdvancedClustersResult struct { GlobalClusterSelfManagedSharding bool `pulumi:"globalClusterSelfManagedSharding"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []GetAdvancedClustersResultLabel `pulumi:"labels"` // Version of the cluster to deploy. MongoDbMajorVersion string `pulumi:"mongoDbMajorVersion"` @@ -19746,6 +20195,8 @@ type GetAdvancedClustersResult struct { Paused bool `pulumi:"paused"` // Flag that indicates if the cluster uses Continuous Cloud Backup. PitEnabled bool `pulumi:"pitEnabled"` + // (Optional) Replica set scaling mode for your cluster. + ReplicaSetScalingStrategy string `pulumi:"replicaSetScalingStrategy"` // List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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 ReplicationSpecs []GetAdvancedClustersResultReplicationSpec `pulumi:"replicationSpecs"` // Certificate Authority that MongoDB Atlas clusters use. @@ -19792,7 +20243,7 @@ type GetAdvancedClustersResultArgs struct { GlobalClusterSelfManagedSharding pulumi.BoolInput `pulumi:"globalClusterSelfManagedSharding"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels GetAdvancedClustersResultLabelArrayInput `pulumi:"labels"` // Version of the cluster to deploy. MongoDbMajorVersion pulumi.StringInput `pulumi:"mongoDbMajorVersion"` @@ -19803,6 +20254,8 @@ type GetAdvancedClustersResultArgs struct { Paused pulumi.BoolInput `pulumi:"paused"` // Flag that indicates if the cluster uses Continuous Cloud Backup. PitEnabled pulumi.BoolInput `pulumi:"pitEnabled"` + // (Optional) Replica set scaling mode for your cluster. + ReplicaSetScalingStrategy pulumi.StringInput `pulumi:"replicaSetScalingStrategy"` // List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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 ReplicationSpecs GetAdvancedClustersResultReplicationSpecArrayInput `pulumi:"replicationSpecs"` // Certificate Authority that MongoDB Atlas clusters use. @@ -19921,7 +20374,7 @@ func (o GetAdvancedClustersResultOutput) GlobalClusterSelfManagedSharding() pulu // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. // -// Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. +// Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags func (o GetAdvancedClustersResultOutput) Labels() GetAdvancedClustersResultLabelArrayOutput { return o.ApplyT(func(v GetAdvancedClustersResult) []GetAdvancedClustersResultLabel { return v.Labels }).(GetAdvancedClustersResultLabelArrayOutput) } @@ -19950,6 +20403,11 @@ func (o GetAdvancedClustersResultOutput) PitEnabled() pulumi.BoolOutput { return o.ApplyT(func(v GetAdvancedClustersResult) bool { return v.PitEnabled }).(pulumi.BoolOutput) } +// (Optional) Replica set scaling mode for your cluster. +func (o GetAdvancedClustersResultOutput) ReplicaSetScalingStrategy() pulumi.StringOutput { + return o.ApplyT(func(v GetAdvancedClustersResult) string { return v.ReplicaSetScalingStrategy }).(pulumi.StringOutput) +} + // List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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 func (o GetAdvancedClustersResultOutput) ReplicationSpecs() GetAdvancedClustersResultReplicationSpecArrayOutput { return o.ApplyT(func(v GetAdvancedClustersResult) []GetAdvancedClustersResultReplicationSpec { @@ -20003,6 +20461,8 @@ func (o GetAdvancedClustersResultArrayOutput) Index(i pulumi.IntInput) GetAdvanc } type GetAdvancedClustersResultAdvancedConfiguration struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds int `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -20026,7 +20486,8 @@ type GetAdvancedClustersResultAdvancedConfiguration struct { // 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. SampleRefreshIntervalBiConnector int `pulumi:"sampleRefreshIntervalBiConnector"` // 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. - SampleSizeBiConnector int `pulumi:"sampleSizeBiConnector"` + SampleSizeBiConnector int `pulumi:"sampleSizeBiConnector"` + // (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. TransactionLifetimeLimitSeconds int `pulumi:"transactionLifetimeLimitSeconds"` } @@ -20042,6 +20503,8 @@ type GetAdvancedClustersResultAdvancedConfigurationInput interface { } type GetAdvancedClustersResultAdvancedConfigurationArgs struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds pulumi.IntInput `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -20065,7 +20528,8 @@ type GetAdvancedClustersResultAdvancedConfigurationArgs struct { // 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. SampleRefreshIntervalBiConnector pulumi.IntInput `pulumi:"sampleRefreshIntervalBiConnector"` // 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. - SampleSizeBiConnector pulumi.IntInput `pulumi:"sampleSizeBiConnector"` + SampleSizeBiConnector pulumi.IntInput `pulumi:"sampleSizeBiConnector"` + // (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. TransactionLifetimeLimitSeconds pulumi.IntInput `pulumi:"transactionLifetimeLimitSeconds"` } @@ -20120,6 +20584,13 @@ func (o GetAdvancedClustersResultAdvancedConfigurationOutput) ToGetAdvancedClust return o } +// (Optional) The minimum pre- and post-image retention time in seconds. +func (o GetAdvancedClustersResultAdvancedConfigurationOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntOutput { + return o.ApplyT(func(v GetAdvancedClustersResultAdvancedConfiguration) int { + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. // // Deprecated: 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.html.markdown @@ -20174,6 +20645,7 @@ func (o GetAdvancedClustersResultAdvancedConfigurationOutput) SampleSizeBiConnec return o.ApplyT(func(v GetAdvancedClustersResultAdvancedConfiguration) int { return v.SampleSizeBiConnector }).(pulumi.IntOutput) } +// (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. func (o GetAdvancedClustersResultAdvancedConfigurationOutput) TransactionLifetimeLimitSeconds() pulumi.IntOutput { return o.ApplyT(func(v GetAdvancedClustersResultAdvancedConfiguration) int { return v.TransactionLifetimeLimitSeconds }).(pulumi.IntOutput) } @@ -27926,6 +28398,8 @@ func (o GetCloudProviderAccessSetupAzureConfigArrayOutput) Index(i pulumi.IntInp } type GetClusterAdvancedConfiguration struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds int `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -27966,6 +28440,8 @@ type GetClusterAdvancedConfigurationInput interface { } type GetClusterAdvancedConfigurationArgs struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds pulumi.IntInput `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -28045,6 +28521,13 @@ func (o GetClusterAdvancedConfigurationOutput) ToGetClusterAdvancedConfiguration return o } +// (Optional) The minimum pre- and post-image retention time in seconds. +func (o GetClusterAdvancedConfigurationOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntOutput { + return o.ApplyT(func(v GetClusterAdvancedConfiguration) int { + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -29612,7 +30095,7 @@ type GetClustersResult struct { EncryptionAtRestProvider string `pulumi:"encryptionAtRestProvider"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels []GetClustersResultLabel `pulumi:"labels"` // Indicates the version of the cluster to deploy. MongoDbMajorVersion string `pulumi:"mongoDbMajorVersion"` @@ -29715,7 +30198,7 @@ type GetClustersResultArgs struct { EncryptionAtRestProvider pulumi.StringInput `pulumi:"encryptionAtRestProvider"` // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // - // Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. + // Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags Labels GetClustersResultLabelArrayInput `pulumi:"labels"` // Indicates the version of the cluster to deploy. MongoDbMajorVersion pulumi.StringInput `pulumi:"mongoDbMajorVersion"` @@ -29893,7 +30376,7 @@ func (o GetClustersResultOutput) EncryptionAtRestProvider() pulumi.StringOutput // Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. // -// Deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags. +// Deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags func (o GetClustersResultOutput) Labels() GetClustersResultLabelArrayOutput { return o.ApplyT(func(v GetClustersResult) []GetClustersResultLabel { return v.Labels }).(GetClustersResultLabelArrayOutput) } @@ -30061,6 +30544,8 @@ func (o GetClustersResultArrayOutput) Index(i pulumi.IntInput) GetClustersResult } type GetClustersResultAdvancedConfiguration struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds int `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -30100,6 +30585,8 @@ type GetClustersResultAdvancedConfigurationInput interface { } type GetClustersResultAdvancedConfigurationArgs struct { + // (Optional) The minimum pre- and post-image retention time in seconds. + ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds pulumi.IntInput `pulumi:"changeStreamOptionsPreAndPostImagesExpireAfterSeconds"` // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -30178,6 +30665,13 @@ func (o GetClustersResultAdvancedConfigurationOutput) ToGetClustersResultAdvance return o } +// (Optional) The minimum pre- and post-image retention time in seconds. +func (o GetClustersResultAdvancedConfigurationOutput) ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds() pulumi.IntOutput { + return o.ApplyT(func(v GetClustersResultAdvancedConfiguration) int { + return v.ChangeStreamOptionsPreAndPostImagesExpireAfterSeconds + }).(pulumi.IntOutput) +} + // [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). // // Deprecated: 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.html.markdown @@ -35119,6 +35613,484 @@ func (o GetDatabaseUsersResultScopeArrayOutput) Index(i pulumi.IntInput) GetData }).(GetDatabaseUsersResultScopeOutput) } +type GetEncryptionAtRestAwsKmsConfig struct { + // 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). + AccessKeyId string `pulumi:"accessKeyId"` + // Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + CustomerMasterKeyId string `pulumi:"customerMasterKeyId"` + // Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + Enabled bool `pulumi:"enabled"` + // 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. + Region string `pulumi:"region"` + // 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. + RoleId string `pulumi:"roleId"` + // 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. + SecretAccessKey string `pulumi:"secretAccessKey"` + // Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid bool `pulumi:"valid"` +} + +// GetEncryptionAtRestAwsKmsConfigInput is an input type that accepts GetEncryptionAtRestAwsKmsConfigArgs and GetEncryptionAtRestAwsKmsConfigOutput values. +// You can construct a concrete instance of `GetEncryptionAtRestAwsKmsConfigInput` via: +// +// GetEncryptionAtRestAwsKmsConfigArgs{...} +type GetEncryptionAtRestAwsKmsConfigInput interface { + pulumi.Input + + ToGetEncryptionAtRestAwsKmsConfigOutput() GetEncryptionAtRestAwsKmsConfigOutput + ToGetEncryptionAtRestAwsKmsConfigOutputWithContext(context.Context) GetEncryptionAtRestAwsKmsConfigOutput +} + +type GetEncryptionAtRestAwsKmsConfigArgs struct { + // 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). + AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"` + // Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + CustomerMasterKeyId pulumi.StringInput `pulumi:"customerMasterKeyId"` + // Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // 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. + Region pulumi.StringInput `pulumi:"region"` + // 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. + RoleId pulumi.StringInput `pulumi:"roleId"` + // 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. + SecretAccessKey pulumi.StringInput `pulumi:"secretAccessKey"` + // Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid pulumi.BoolInput `pulumi:"valid"` +} + +func (GetEncryptionAtRestAwsKmsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestAwsKmsConfig)(nil)).Elem() +} + +func (i GetEncryptionAtRestAwsKmsConfigArgs) ToGetEncryptionAtRestAwsKmsConfigOutput() GetEncryptionAtRestAwsKmsConfigOutput { + return i.ToGetEncryptionAtRestAwsKmsConfigOutputWithContext(context.Background()) +} + +func (i GetEncryptionAtRestAwsKmsConfigArgs) ToGetEncryptionAtRestAwsKmsConfigOutputWithContext(ctx context.Context) GetEncryptionAtRestAwsKmsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetEncryptionAtRestAwsKmsConfigOutput) +} + +type GetEncryptionAtRestAwsKmsConfigOutput struct{ *pulumi.OutputState } + +func (GetEncryptionAtRestAwsKmsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestAwsKmsConfig)(nil)).Elem() +} + +func (o GetEncryptionAtRestAwsKmsConfigOutput) ToGetEncryptionAtRestAwsKmsConfigOutput() GetEncryptionAtRestAwsKmsConfigOutput { + return o +} + +func (o GetEncryptionAtRestAwsKmsConfigOutput) ToGetEncryptionAtRestAwsKmsConfigOutputWithContext(ctx context.Context) GetEncryptionAtRestAwsKmsConfigOutput { + return o +} + +// 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). +func (o GetEncryptionAtRestAwsKmsConfigOutput) AccessKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) string { return v.AccessKeyId }).(pulumi.StringOutput) +} + +// Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. +func (o GetEncryptionAtRestAwsKmsConfigOutput) CustomerMasterKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) string { return v.CustomerMasterKeyId }).(pulumi.StringOutput) +} + +// Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. +func (o GetEncryptionAtRestAwsKmsConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// 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. +func (o GetEncryptionAtRestAwsKmsConfigOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) string { return v.Region }).(pulumi.StringOutput) +} + +// 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. +func (o GetEncryptionAtRestAwsKmsConfigOutput) RoleId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) string { return v.RoleId }).(pulumi.StringOutput) +} + +// 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. +func (o GetEncryptionAtRestAwsKmsConfigOutput) SecretAccessKey() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) string { return v.SecretAccessKey }).(pulumi.StringOutput) +} + +// Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. +func (o GetEncryptionAtRestAwsKmsConfigOutput) Valid() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestAwsKmsConfig) bool { return v.Valid }).(pulumi.BoolOutput) +} + +type GetEncryptionAtRestAzureKeyVaultConfig struct { + // Azure environment in which your account credentials reside. + AzureEnvironment string `pulumi:"azureEnvironment"` + // Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + ClientId string `pulumi:"clientId"` + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + Enabled bool `pulumi:"enabled"` + // Web address with a unique key that identifies for your Azure Key Vault. + KeyIdentifier string `pulumi:"keyIdentifier"` + // Unique string that identifies the Azure Key Vault that contains your key. + KeyVaultName string `pulumi:"keyVaultName"` + // Enable connection to your Azure Key Vault over private networking. + RequirePrivateNetworking bool `pulumi:"requirePrivateNetworking"` + // Name of the Azure resource group that contains your Azure Key Vault. + ResourceGroupName string `pulumi:"resourceGroupName"` + // 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. + Secret string `pulumi:"secret"` + // Unique 36-hexadecimal character string that identifies your Azure subscription. + SubscriptionId string `pulumi:"subscriptionId"` + // Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + TenantId string `pulumi:"tenantId"` + // Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + Valid bool `pulumi:"valid"` +} + +// GetEncryptionAtRestAzureKeyVaultConfigInput is an input type that accepts GetEncryptionAtRestAzureKeyVaultConfigArgs and GetEncryptionAtRestAzureKeyVaultConfigOutput values. +// You can construct a concrete instance of `GetEncryptionAtRestAzureKeyVaultConfigInput` via: +// +// GetEncryptionAtRestAzureKeyVaultConfigArgs{...} +type GetEncryptionAtRestAzureKeyVaultConfigInput interface { + pulumi.Input + + ToGetEncryptionAtRestAzureKeyVaultConfigOutput() GetEncryptionAtRestAzureKeyVaultConfigOutput + ToGetEncryptionAtRestAzureKeyVaultConfigOutputWithContext(context.Context) GetEncryptionAtRestAzureKeyVaultConfigOutput +} + +type GetEncryptionAtRestAzureKeyVaultConfigArgs struct { + // Azure environment in which your account credentials reside. + AzureEnvironment pulumi.StringInput `pulumi:"azureEnvironment"` + // Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + ClientId pulumi.StringInput `pulumi:"clientId"` + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // Web address with a unique key that identifies for your Azure Key Vault. + KeyIdentifier pulumi.StringInput `pulumi:"keyIdentifier"` + // Unique string that identifies the Azure Key Vault that contains your key. + KeyVaultName pulumi.StringInput `pulumi:"keyVaultName"` + // Enable connection to your Azure Key Vault over private networking. + RequirePrivateNetworking pulumi.BoolInput `pulumi:"requirePrivateNetworking"` + // Name of the Azure resource group that contains your Azure Key Vault. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // 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. + Secret pulumi.StringInput `pulumi:"secret"` + // Unique 36-hexadecimal character string that identifies your Azure subscription. + SubscriptionId pulumi.StringInput `pulumi:"subscriptionId"` + // Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + TenantId pulumi.StringInput `pulumi:"tenantId"` + // Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + Valid pulumi.BoolInput `pulumi:"valid"` +} + +func (GetEncryptionAtRestAzureKeyVaultConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestAzureKeyVaultConfig)(nil)).Elem() +} + +func (i GetEncryptionAtRestAzureKeyVaultConfigArgs) ToGetEncryptionAtRestAzureKeyVaultConfigOutput() GetEncryptionAtRestAzureKeyVaultConfigOutput { + return i.ToGetEncryptionAtRestAzureKeyVaultConfigOutputWithContext(context.Background()) +} + +func (i GetEncryptionAtRestAzureKeyVaultConfigArgs) ToGetEncryptionAtRestAzureKeyVaultConfigOutputWithContext(ctx context.Context) GetEncryptionAtRestAzureKeyVaultConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetEncryptionAtRestAzureKeyVaultConfigOutput) +} + +type GetEncryptionAtRestAzureKeyVaultConfigOutput struct{ *pulumi.OutputState } + +func (GetEncryptionAtRestAzureKeyVaultConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestAzureKeyVaultConfig)(nil)).Elem() +} + +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) ToGetEncryptionAtRestAzureKeyVaultConfigOutput() GetEncryptionAtRestAzureKeyVaultConfigOutput { + return o +} + +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) ToGetEncryptionAtRestAzureKeyVaultConfigOutputWithContext(ctx context.Context) GetEncryptionAtRestAzureKeyVaultConfigOutput { + return o +} + +// Azure environment in which your account credentials reside. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) AzureEnvironment() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.AzureEnvironment }).(pulumi.StringOutput) +} + +// Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.ClientId }).(pulumi.StringOutput) +} + +// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// Web address with a unique key that identifies for your Azure Key Vault. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) KeyIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.KeyIdentifier }).(pulumi.StringOutput) +} + +// Unique string that identifies the Azure Key Vault that contains your key. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) KeyVaultName() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.KeyVaultName }).(pulumi.StringOutput) +} + +// Enable connection to your Azure Key Vault over private networking. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) RequirePrivateNetworking() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) bool { return v.RequirePrivateNetworking }).(pulumi.BoolOutput) +} + +// Name of the Azure resource group that contains your Azure Key Vault. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) ResourceGroupName() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.ResourceGroupName }).(pulumi.StringOutput) +} + +// 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. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) Secret() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.Secret }).(pulumi.StringOutput) +} + +// Unique 36-hexadecimal character string that identifies your Azure subscription. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) SubscriptionId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.SubscriptionId }).(pulumi.StringOutput) +} + +// Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) TenantId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) string { return v.TenantId }).(pulumi.StringOutput) +} + +// Flag that indicates whether the Azure encryption key can encrypt and decrypt data. +func (o GetEncryptionAtRestAzureKeyVaultConfigOutput) Valid() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestAzureKeyVaultConfig) bool { return v.Valid }).(pulumi.BoolOutput) +} + +type GetEncryptionAtRestGoogleCloudKmsConfig struct { + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + Enabled bool `pulumi:"enabled"` + // Resource path that displays the key version resource ID for your Google Cloud KMS. + KeyVersionResourceId string `pulumi:"keyVersionResourceId"` + // 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. + ServiceAccountKey string `pulumi:"serviceAccountKey"` + // Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid bool `pulumi:"valid"` +} + +// GetEncryptionAtRestGoogleCloudKmsConfigInput is an input type that accepts GetEncryptionAtRestGoogleCloudKmsConfigArgs and GetEncryptionAtRestGoogleCloudKmsConfigOutput values. +// You can construct a concrete instance of `GetEncryptionAtRestGoogleCloudKmsConfigInput` via: +// +// GetEncryptionAtRestGoogleCloudKmsConfigArgs{...} +type GetEncryptionAtRestGoogleCloudKmsConfigInput interface { + pulumi.Input + + ToGetEncryptionAtRestGoogleCloudKmsConfigOutput() GetEncryptionAtRestGoogleCloudKmsConfigOutput + ToGetEncryptionAtRestGoogleCloudKmsConfigOutputWithContext(context.Context) GetEncryptionAtRestGoogleCloudKmsConfigOutput +} + +type GetEncryptionAtRestGoogleCloudKmsConfigArgs struct { + // Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // Resource path that displays the key version resource ID for your Google Cloud KMS. + KeyVersionResourceId pulumi.StringInput `pulumi:"keyVersionResourceId"` + // 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. + ServiceAccountKey pulumi.StringInput `pulumi:"serviceAccountKey"` + // Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + Valid pulumi.BoolInput `pulumi:"valid"` +} + +func (GetEncryptionAtRestGoogleCloudKmsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestGoogleCloudKmsConfig)(nil)).Elem() +} + +func (i GetEncryptionAtRestGoogleCloudKmsConfigArgs) ToGetEncryptionAtRestGoogleCloudKmsConfigOutput() GetEncryptionAtRestGoogleCloudKmsConfigOutput { + return i.ToGetEncryptionAtRestGoogleCloudKmsConfigOutputWithContext(context.Background()) +} + +func (i GetEncryptionAtRestGoogleCloudKmsConfigArgs) ToGetEncryptionAtRestGoogleCloudKmsConfigOutputWithContext(ctx context.Context) GetEncryptionAtRestGoogleCloudKmsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetEncryptionAtRestGoogleCloudKmsConfigOutput) +} + +type GetEncryptionAtRestGoogleCloudKmsConfigOutput struct{ *pulumi.OutputState } + +func (GetEncryptionAtRestGoogleCloudKmsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestGoogleCloudKmsConfig)(nil)).Elem() +} + +func (o GetEncryptionAtRestGoogleCloudKmsConfigOutput) ToGetEncryptionAtRestGoogleCloudKmsConfigOutput() GetEncryptionAtRestGoogleCloudKmsConfigOutput { + return o +} + +func (o GetEncryptionAtRestGoogleCloudKmsConfigOutput) ToGetEncryptionAtRestGoogleCloudKmsConfigOutputWithContext(ctx context.Context) GetEncryptionAtRestGoogleCloudKmsConfigOutput { + return o +} + +// Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. +func (o GetEncryptionAtRestGoogleCloudKmsConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestGoogleCloudKmsConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// Resource path that displays the key version resource ID for your Google Cloud KMS. +func (o GetEncryptionAtRestGoogleCloudKmsConfigOutput) KeyVersionResourceId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestGoogleCloudKmsConfig) string { return v.KeyVersionResourceId }).(pulumi.StringOutput) +} + +// 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. +func (o GetEncryptionAtRestGoogleCloudKmsConfigOutput) ServiceAccountKey() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestGoogleCloudKmsConfig) string { return v.ServiceAccountKey }).(pulumi.StringOutput) +} + +// Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. +func (o GetEncryptionAtRestGoogleCloudKmsConfigOutput) Valid() pulumi.BoolOutput { + return o.ApplyT(func(v GetEncryptionAtRestGoogleCloudKmsConfig) bool { return v.Valid }).(pulumi.BoolOutput) +} + +type GetEncryptionAtRestPrivateEndpointsResult struct { + // Label that identifies the cloud provider of the private endpoint. + CloudProvider string `pulumi:"cloudProvider"` + // Error message for failures associated with the Encryption At Rest private endpoint. + ErrorMessage string `pulumi:"errorMessage"` + // Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + Id string `pulumi:"id"` + // Connection name of the Azure Private Endpoint. + PrivateEndpointConnectionName string `pulumi:"privateEndpointConnectionName"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId string `pulumi:"projectId"` + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName string `pulumi:"regionName"` + // State of the Encryption At Rest private endpoint. + Status string `pulumi:"status"` +} + +// GetEncryptionAtRestPrivateEndpointsResultInput is an input type that accepts GetEncryptionAtRestPrivateEndpointsResultArgs and GetEncryptionAtRestPrivateEndpointsResultOutput values. +// You can construct a concrete instance of `GetEncryptionAtRestPrivateEndpointsResultInput` via: +// +// GetEncryptionAtRestPrivateEndpointsResultArgs{...} +type GetEncryptionAtRestPrivateEndpointsResultInput interface { + pulumi.Input + + ToGetEncryptionAtRestPrivateEndpointsResultOutput() GetEncryptionAtRestPrivateEndpointsResultOutput + ToGetEncryptionAtRestPrivateEndpointsResultOutputWithContext(context.Context) GetEncryptionAtRestPrivateEndpointsResultOutput +} + +type GetEncryptionAtRestPrivateEndpointsResultArgs struct { + // Label that identifies the cloud provider of the private endpoint. + CloudProvider pulumi.StringInput `pulumi:"cloudProvider"` + // Error message for failures associated with the Encryption At Rest private endpoint. + ErrorMessage pulumi.StringInput `pulumi:"errorMessage"` + // Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + Id pulumi.StringInput `pulumi:"id"` + // Connection name of the Azure Private Endpoint. + PrivateEndpointConnectionName pulumi.StringInput `pulumi:"privateEndpointConnectionName"` + // Unique 24-hexadecimal digit string that identifies your project. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // Cloud provider region in which the Encryption At Rest private endpoint is located. + RegionName pulumi.StringInput `pulumi:"regionName"` + // State of the Encryption At Rest private endpoint. + Status pulumi.StringInput `pulumi:"status"` +} + +func (GetEncryptionAtRestPrivateEndpointsResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestPrivateEndpointsResult)(nil)).Elem() +} + +func (i GetEncryptionAtRestPrivateEndpointsResultArgs) ToGetEncryptionAtRestPrivateEndpointsResultOutput() GetEncryptionAtRestPrivateEndpointsResultOutput { + return i.ToGetEncryptionAtRestPrivateEndpointsResultOutputWithContext(context.Background()) +} + +func (i GetEncryptionAtRestPrivateEndpointsResultArgs) ToGetEncryptionAtRestPrivateEndpointsResultOutputWithContext(ctx context.Context) GetEncryptionAtRestPrivateEndpointsResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetEncryptionAtRestPrivateEndpointsResultOutput) +} + +// GetEncryptionAtRestPrivateEndpointsResultArrayInput is an input type that accepts GetEncryptionAtRestPrivateEndpointsResultArray and GetEncryptionAtRestPrivateEndpointsResultArrayOutput values. +// You can construct a concrete instance of `GetEncryptionAtRestPrivateEndpointsResultArrayInput` via: +// +// GetEncryptionAtRestPrivateEndpointsResultArray{ GetEncryptionAtRestPrivateEndpointsResultArgs{...} } +type GetEncryptionAtRestPrivateEndpointsResultArrayInput interface { + pulumi.Input + + ToGetEncryptionAtRestPrivateEndpointsResultArrayOutput() GetEncryptionAtRestPrivateEndpointsResultArrayOutput + ToGetEncryptionAtRestPrivateEndpointsResultArrayOutputWithContext(context.Context) GetEncryptionAtRestPrivateEndpointsResultArrayOutput +} + +type GetEncryptionAtRestPrivateEndpointsResultArray []GetEncryptionAtRestPrivateEndpointsResultInput + +func (GetEncryptionAtRestPrivateEndpointsResultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetEncryptionAtRestPrivateEndpointsResult)(nil)).Elem() +} + +func (i GetEncryptionAtRestPrivateEndpointsResultArray) ToGetEncryptionAtRestPrivateEndpointsResultArrayOutput() GetEncryptionAtRestPrivateEndpointsResultArrayOutput { + return i.ToGetEncryptionAtRestPrivateEndpointsResultArrayOutputWithContext(context.Background()) +} + +func (i GetEncryptionAtRestPrivateEndpointsResultArray) ToGetEncryptionAtRestPrivateEndpointsResultArrayOutputWithContext(ctx context.Context) GetEncryptionAtRestPrivateEndpointsResultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetEncryptionAtRestPrivateEndpointsResultArrayOutput) +} + +type GetEncryptionAtRestPrivateEndpointsResultOutput struct{ *pulumi.OutputState } + +func (GetEncryptionAtRestPrivateEndpointsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetEncryptionAtRestPrivateEndpointsResult)(nil)).Elem() +} + +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) ToGetEncryptionAtRestPrivateEndpointsResultOutput() GetEncryptionAtRestPrivateEndpointsResultOutput { + return o +} + +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) ToGetEncryptionAtRestPrivateEndpointsResultOutputWithContext(ctx context.Context) GetEncryptionAtRestPrivateEndpointsResultOutput { + return o +} + +// Label that identifies the cloud provider of the private endpoint. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) CloudProvider() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.CloudProvider }).(pulumi.StringOutput) +} + +// Error message for failures associated with the Encryption At Rest private endpoint. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) ErrorMessage() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.ErrorMessage }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Connection name of the Azure Private Endpoint. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) PrivateEndpointConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.PrivateEndpointConnectionName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// Cloud provider region in which the Encryption At Rest private endpoint is located. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) RegionName() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.RegionName }).(pulumi.StringOutput) +} + +// State of the Encryption At Rest private endpoint. +func (o GetEncryptionAtRestPrivateEndpointsResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetEncryptionAtRestPrivateEndpointsResult) string { return v.Status }).(pulumi.StringOutput) +} + +type GetEncryptionAtRestPrivateEndpointsResultArrayOutput struct{ *pulumi.OutputState } + +func (GetEncryptionAtRestPrivateEndpointsResultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetEncryptionAtRestPrivateEndpointsResult)(nil)).Elem() +} + +func (o GetEncryptionAtRestPrivateEndpointsResultArrayOutput) ToGetEncryptionAtRestPrivateEndpointsResultArrayOutput() GetEncryptionAtRestPrivateEndpointsResultArrayOutput { + return o +} + +func (o GetEncryptionAtRestPrivateEndpointsResultArrayOutput) ToGetEncryptionAtRestPrivateEndpointsResultArrayOutputWithContext(ctx context.Context) GetEncryptionAtRestPrivateEndpointsResultArrayOutput { + return o +} + +func (o GetEncryptionAtRestPrivateEndpointsResultArrayOutput) Index(i pulumi.IntInput) GetEncryptionAtRestPrivateEndpointsResultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetEncryptionAtRestPrivateEndpointsResult { + return vs[0].([]GetEncryptionAtRestPrivateEndpointsResult)[vs[1].(int)] + }).(GetEncryptionAtRestPrivateEndpointsResultOutput) +} + type GetEventTriggerEventProcessor struct { AwsEventbridges []GetEventTriggerEventProcessorAwsEventbridge `pulumi:"awsEventbridges"` } @@ -45315,6 +46287,7 @@ func (o GetProjectIpAddressesOutput) Services() GetProjectIpAddressesServicesOut } type GetProjectIpAddressesServices struct { + // IP addresses of clusters. Clusters []GetProjectIpAddressesServicesCluster `pulumi:"clusters"` } @@ -45330,6 +46303,7 @@ type GetProjectIpAddressesServicesInput interface { } type GetProjectIpAddressesServicesArgs struct { + // IP addresses of clusters. Clusters GetProjectIpAddressesServicesClusterArrayInput `pulumi:"clusters"` } @@ -45359,14 +46333,18 @@ func (o GetProjectIpAddressesServicesOutput) ToGetProjectIpAddressesServicesOutp return o } +// IP addresses of clusters. func (o GetProjectIpAddressesServicesOutput) Clusters() GetProjectIpAddressesServicesClusterArrayOutput { return o.ApplyT(func(v GetProjectIpAddressesServices) []GetProjectIpAddressesServicesCluster { return v.Clusters }).(GetProjectIpAddressesServicesClusterArrayOutput) } type GetProjectIpAddressesServicesCluster struct { - ClusterName string `pulumi:"clusterName"` - Inbounds []string `pulumi:"inbounds"` - Outbounds []string `pulumi:"outbounds"` + // Human-readable label that identifies the cluster. + ClusterName string `pulumi:"clusterName"` + // 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. + Inbounds []string `pulumi:"inbounds"` + // 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. + Outbounds []string `pulumi:"outbounds"` } // GetProjectIpAddressesServicesClusterInput is an input type that accepts GetProjectIpAddressesServicesClusterArgs and GetProjectIpAddressesServicesClusterOutput values. @@ -45381,9 +46359,12 @@ type GetProjectIpAddressesServicesClusterInput interface { } type GetProjectIpAddressesServicesClusterArgs struct { - ClusterName pulumi.StringInput `pulumi:"clusterName"` - Inbounds pulumi.StringArrayInput `pulumi:"inbounds"` - Outbounds pulumi.StringArrayInput `pulumi:"outbounds"` + // Human-readable label that identifies the cluster. + ClusterName pulumi.StringInput `pulumi:"clusterName"` + // 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. + Inbounds pulumi.StringArrayInput `pulumi:"inbounds"` + // 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. + Outbounds pulumi.StringArrayInput `pulumi:"outbounds"` } func (GetProjectIpAddressesServicesClusterArgs) ElementType() reflect.Type { @@ -45437,14 +46418,17 @@ func (o GetProjectIpAddressesServicesClusterOutput) ToGetProjectIpAddressesServi return o } +// Human-readable label that identifies the cluster. func (o GetProjectIpAddressesServicesClusterOutput) ClusterName() pulumi.StringOutput { return o.ApplyT(func(v GetProjectIpAddressesServicesCluster) string { return v.ClusterName }).(pulumi.StringOutput) } +// 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. func (o GetProjectIpAddressesServicesClusterOutput) Inbounds() pulumi.StringArrayOutput { return o.ApplyT(func(v GetProjectIpAddressesServicesCluster) []string { return v.Inbounds }).(pulumi.StringArrayOutput) } +// 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. func (o GetProjectIpAddressesServicesClusterOutput) Outbounds() pulumi.StringArrayOutput { return o.ApplyT(func(v GetProjectIpAddressesServicesCluster) []string { return v.Outbounds }).(pulumi.StringArrayOutput) } @@ -45721,7 +46705,9 @@ type GetProjectsResult struct { Created string `pulumi:"created"` // Autogenerated Unique ID for this data source. Id string `pulumi:"id"` - // IP addresses in a project categorized by services. See IP Addresses. + // IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. + // + // Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. IpAddresses GetProjectsResultIpAddresses `pulumi:"ipAddresses"` // Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. IsCollectDatabaseSpecificsStatisticsEnabled bool `pulumi:"isCollectDatabaseSpecificsStatisticsEnabled"` @@ -45767,7 +46753,9 @@ type GetProjectsResultArgs struct { Created pulumi.StringInput `pulumi:"created"` // Autogenerated Unique ID for this data source. Id pulumi.StringInput `pulumi:"id"` - // IP addresses in a project categorized by services. See IP Addresses. + // IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. + // + // Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. IpAddresses GetProjectsResultIpAddressesInput `pulumi:"ipAddresses"` // Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. IsCollectDatabaseSpecificsStatisticsEnabled pulumi.BoolInput `pulumi:"isCollectDatabaseSpecificsStatisticsEnabled"` @@ -45861,7 +46849,9 @@ func (o GetProjectsResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetProjectsResult) string { return v.Id }).(pulumi.StringOutput) } -// IP addresses in a project categorized by services. See IP Addresses. +// IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `getProjectIpAddresses` data source instead. +// +// Deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to getProjectIpAddresses data source. func (o GetProjectsResultOutput) IpAddresses() GetProjectsResultIpAddressesOutput { return o.ApplyT(func(v GetProjectsResult) GetProjectsResultIpAddresses { return v.IpAddresses }).(GetProjectsResultIpAddressesOutput) } @@ -48811,6 +49801,410 @@ func (o GetStreamInstancesResultStreamConfigOutput) Tier() pulumi.StringOutput { return o.ApplyT(func(v GetStreamInstancesResultStreamConfig) string { return v.Tier }).(pulumi.StringOutput) } +type GetStreamProcessorOptions struct { + // 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. + Dlq GetStreamProcessorOptionsDlq `pulumi:"dlq"` +} + +// GetStreamProcessorOptionsInput is an input type that accepts GetStreamProcessorOptionsArgs and GetStreamProcessorOptionsOutput values. +// You can construct a concrete instance of `GetStreamProcessorOptionsInput` via: +// +// GetStreamProcessorOptionsArgs{...} +type GetStreamProcessorOptionsInput interface { + pulumi.Input + + ToGetStreamProcessorOptionsOutput() GetStreamProcessorOptionsOutput + ToGetStreamProcessorOptionsOutputWithContext(context.Context) GetStreamProcessorOptionsOutput +} + +type GetStreamProcessorOptionsArgs struct { + // 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. + Dlq GetStreamProcessorOptionsDlqInput `pulumi:"dlq"` +} + +func (GetStreamProcessorOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorOptions)(nil)).Elem() +} + +func (i GetStreamProcessorOptionsArgs) ToGetStreamProcessorOptionsOutput() GetStreamProcessorOptionsOutput { + return i.ToGetStreamProcessorOptionsOutputWithContext(context.Background()) +} + +func (i GetStreamProcessorOptionsArgs) ToGetStreamProcessorOptionsOutputWithContext(ctx context.Context) GetStreamProcessorOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetStreamProcessorOptionsOutput) +} + +type GetStreamProcessorOptionsOutput struct{ *pulumi.OutputState } + +func (GetStreamProcessorOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorOptions)(nil)).Elem() +} + +func (o GetStreamProcessorOptionsOutput) ToGetStreamProcessorOptionsOutput() GetStreamProcessorOptionsOutput { + return o +} + +func (o GetStreamProcessorOptionsOutput) ToGetStreamProcessorOptionsOutputWithContext(ctx context.Context) GetStreamProcessorOptionsOutput { + return o +} + +// 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. +func (o GetStreamProcessorOptionsOutput) Dlq() GetStreamProcessorOptionsDlqOutput { + return o.ApplyT(func(v GetStreamProcessorOptions) GetStreamProcessorOptionsDlq { return v.Dlq }).(GetStreamProcessorOptionsDlqOutput) +} + +type GetStreamProcessorOptionsDlq struct { + // Name of the collection to use for the DLQ. + Coll string `pulumi:"coll"` + // Name of the connection to write DLQ messages to. Must be an Atlas connection. + ConnectionName string `pulumi:"connectionName"` + // Name of the database to use for the DLQ. + Db string `pulumi:"db"` +} + +// GetStreamProcessorOptionsDlqInput is an input type that accepts GetStreamProcessorOptionsDlqArgs and GetStreamProcessorOptionsDlqOutput values. +// You can construct a concrete instance of `GetStreamProcessorOptionsDlqInput` via: +// +// GetStreamProcessorOptionsDlqArgs{...} +type GetStreamProcessorOptionsDlqInput interface { + pulumi.Input + + ToGetStreamProcessorOptionsDlqOutput() GetStreamProcessorOptionsDlqOutput + ToGetStreamProcessorOptionsDlqOutputWithContext(context.Context) GetStreamProcessorOptionsDlqOutput +} + +type GetStreamProcessorOptionsDlqArgs struct { + // Name of the collection to use for the DLQ. + Coll pulumi.StringInput `pulumi:"coll"` + // Name of the connection to write DLQ messages to. Must be an Atlas connection. + ConnectionName pulumi.StringInput `pulumi:"connectionName"` + // Name of the database to use for the DLQ. + Db pulumi.StringInput `pulumi:"db"` +} + +func (GetStreamProcessorOptionsDlqArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorOptionsDlq)(nil)).Elem() +} + +func (i GetStreamProcessorOptionsDlqArgs) ToGetStreamProcessorOptionsDlqOutput() GetStreamProcessorOptionsDlqOutput { + return i.ToGetStreamProcessorOptionsDlqOutputWithContext(context.Background()) +} + +func (i GetStreamProcessorOptionsDlqArgs) ToGetStreamProcessorOptionsDlqOutputWithContext(ctx context.Context) GetStreamProcessorOptionsDlqOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetStreamProcessorOptionsDlqOutput) +} + +type GetStreamProcessorOptionsDlqOutput struct{ *pulumi.OutputState } + +func (GetStreamProcessorOptionsDlqOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorOptionsDlq)(nil)).Elem() +} + +func (o GetStreamProcessorOptionsDlqOutput) ToGetStreamProcessorOptionsDlqOutput() GetStreamProcessorOptionsDlqOutput { + return o +} + +func (o GetStreamProcessorOptionsDlqOutput) ToGetStreamProcessorOptionsDlqOutputWithContext(ctx context.Context) GetStreamProcessorOptionsDlqOutput { + return o +} + +// Name of the collection to use for the DLQ. +func (o GetStreamProcessorOptionsDlqOutput) Coll() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorOptionsDlq) string { return v.Coll }).(pulumi.StringOutput) +} + +// Name of the connection to write DLQ messages to. Must be an Atlas connection. +func (o GetStreamProcessorOptionsDlqOutput) ConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorOptionsDlq) string { return v.ConnectionName }).(pulumi.StringOutput) +} + +// Name of the database to use for the DLQ. +func (o GetStreamProcessorOptionsDlqOutput) Db() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorOptionsDlq) string { return v.Db }).(pulumi.StringOutput) +} + +type GetStreamProcessorsResult struct { + // Unique 24-hexadecimal character string that identifies the stream processor. + Id string `pulumi:"id"` + // Human-readable label that identifies the stream instance. + InstanceName string `pulumi:"instanceName"` + // Optional configuration for the stream processor. + Options GetStreamProcessorsResultOptions `pulumi:"options"` + // Stream aggregation pipeline you want to apply to your streaming data. + Pipeline string `pulumi:"pipeline"` + // Human-readable label that identifies the stream processor. + ProcessorName string `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId string `pulumi:"projectId"` + // The state of the stream processor. + State string `pulumi:"state"` + // The stats associated with the stream processor. + Stats string `pulumi:"stats"` +} + +// GetStreamProcessorsResultInput is an input type that accepts GetStreamProcessorsResultArgs and GetStreamProcessorsResultOutput values. +// You can construct a concrete instance of `GetStreamProcessorsResultInput` via: +// +// GetStreamProcessorsResultArgs{...} +type GetStreamProcessorsResultInput interface { + pulumi.Input + + ToGetStreamProcessorsResultOutput() GetStreamProcessorsResultOutput + ToGetStreamProcessorsResultOutputWithContext(context.Context) GetStreamProcessorsResultOutput +} + +type GetStreamProcessorsResultArgs struct { + // Unique 24-hexadecimal character string that identifies the stream processor. + Id pulumi.StringInput `pulumi:"id"` + // Human-readable label that identifies the stream instance. + InstanceName pulumi.StringInput `pulumi:"instanceName"` + // Optional configuration for the stream processor. + Options GetStreamProcessorsResultOptionsInput `pulumi:"options"` + // Stream aggregation pipeline you want to apply to your streaming data. + Pipeline pulumi.StringInput `pulumi:"pipeline"` + // Human-readable label that identifies the stream processor. + ProcessorName pulumi.StringInput `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // The state of the stream processor. + State pulumi.StringInput `pulumi:"state"` + // The stats associated with the stream processor. + Stats pulumi.StringInput `pulumi:"stats"` +} + +func (GetStreamProcessorsResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorsResult)(nil)).Elem() +} + +func (i GetStreamProcessorsResultArgs) ToGetStreamProcessorsResultOutput() GetStreamProcessorsResultOutput { + return i.ToGetStreamProcessorsResultOutputWithContext(context.Background()) +} + +func (i GetStreamProcessorsResultArgs) ToGetStreamProcessorsResultOutputWithContext(ctx context.Context) GetStreamProcessorsResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetStreamProcessorsResultOutput) +} + +// GetStreamProcessorsResultArrayInput is an input type that accepts GetStreamProcessorsResultArray and GetStreamProcessorsResultArrayOutput values. +// You can construct a concrete instance of `GetStreamProcessorsResultArrayInput` via: +// +// GetStreamProcessorsResultArray{ GetStreamProcessorsResultArgs{...} } +type GetStreamProcessorsResultArrayInput interface { + pulumi.Input + + ToGetStreamProcessorsResultArrayOutput() GetStreamProcessorsResultArrayOutput + ToGetStreamProcessorsResultArrayOutputWithContext(context.Context) GetStreamProcessorsResultArrayOutput +} + +type GetStreamProcessorsResultArray []GetStreamProcessorsResultInput + +func (GetStreamProcessorsResultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetStreamProcessorsResult)(nil)).Elem() +} + +func (i GetStreamProcessorsResultArray) ToGetStreamProcessorsResultArrayOutput() GetStreamProcessorsResultArrayOutput { + return i.ToGetStreamProcessorsResultArrayOutputWithContext(context.Background()) +} + +func (i GetStreamProcessorsResultArray) ToGetStreamProcessorsResultArrayOutputWithContext(ctx context.Context) GetStreamProcessorsResultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetStreamProcessorsResultArrayOutput) +} + +type GetStreamProcessorsResultOutput struct{ *pulumi.OutputState } + +func (GetStreamProcessorsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorsResult)(nil)).Elem() +} + +func (o GetStreamProcessorsResultOutput) ToGetStreamProcessorsResultOutput() GetStreamProcessorsResultOutput { + return o +} + +func (o GetStreamProcessorsResultOutput) ToGetStreamProcessorsResultOutputWithContext(ctx context.Context) GetStreamProcessorsResultOutput { + return o +} + +// Unique 24-hexadecimal character string that identifies the stream processor. +func (o GetStreamProcessorsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Human-readable label that identifies the stream instance. +func (o GetStreamProcessorsResultOutput) InstanceName() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.InstanceName }).(pulumi.StringOutput) +} + +// Optional configuration for the stream processor. +func (o GetStreamProcessorsResultOutput) Options() GetStreamProcessorsResultOptionsOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) GetStreamProcessorsResultOptions { return v.Options }).(GetStreamProcessorsResultOptionsOutput) +} + +// Stream aggregation pipeline you want to apply to your streaming data. +func (o GetStreamProcessorsResultOutput) Pipeline() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.Pipeline }).(pulumi.StringOutput) +} + +// Human-readable label that identifies the stream processor. +func (o GetStreamProcessorsResultOutput) ProcessorName() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.ProcessorName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. +func (o GetStreamProcessorsResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// The state of the stream processor. +func (o GetStreamProcessorsResultOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.State }).(pulumi.StringOutput) +} + +// The stats associated with the stream processor. +func (o GetStreamProcessorsResultOutput) Stats() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResult) string { return v.Stats }).(pulumi.StringOutput) +} + +type GetStreamProcessorsResultArrayOutput struct{ *pulumi.OutputState } + +func (GetStreamProcessorsResultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetStreamProcessorsResult)(nil)).Elem() +} + +func (o GetStreamProcessorsResultArrayOutput) ToGetStreamProcessorsResultArrayOutput() GetStreamProcessorsResultArrayOutput { + return o +} + +func (o GetStreamProcessorsResultArrayOutput) ToGetStreamProcessorsResultArrayOutputWithContext(ctx context.Context) GetStreamProcessorsResultArrayOutput { + return o +} + +func (o GetStreamProcessorsResultArrayOutput) Index(i pulumi.IntInput) GetStreamProcessorsResultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetStreamProcessorsResult { + return vs[0].([]GetStreamProcessorsResult)[vs[1].(int)] + }).(GetStreamProcessorsResultOutput) +} + +type GetStreamProcessorsResultOptions struct { + // 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. + Dlq GetStreamProcessorsResultOptionsDlq `pulumi:"dlq"` +} + +// GetStreamProcessorsResultOptionsInput is an input type that accepts GetStreamProcessorsResultOptionsArgs and GetStreamProcessorsResultOptionsOutput values. +// You can construct a concrete instance of `GetStreamProcessorsResultOptionsInput` via: +// +// GetStreamProcessorsResultOptionsArgs{...} +type GetStreamProcessorsResultOptionsInput interface { + pulumi.Input + + ToGetStreamProcessorsResultOptionsOutput() GetStreamProcessorsResultOptionsOutput + ToGetStreamProcessorsResultOptionsOutputWithContext(context.Context) GetStreamProcessorsResultOptionsOutput +} + +type GetStreamProcessorsResultOptionsArgs struct { + // 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. + Dlq GetStreamProcessorsResultOptionsDlqInput `pulumi:"dlq"` +} + +func (GetStreamProcessorsResultOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorsResultOptions)(nil)).Elem() +} + +func (i GetStreamProcessorsResultOptionsArgs) ToGetStreamProcessorsResultOptionsOutput() GetStreamProcessorsResultOptionsOutput { + return i.ToGetStreamProcessorsResultOptionsOutputWithContext(context.Background()) +} + +func (i GetStreamProcessorsResultOptionsArgs) ToGetStreamProcessorsResultOptionsOutputWithContext(ctx context.Context) GetStreamProcessorsResultOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetStreamProcessorsResultOptionsOutput) +} + +type GetStreamProcessorsResultOptionsOutput struct{ *pulumi.OutputState } + +func (GetStreamProcessorsResultOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorsResultOptions)(nil)).Elem() +} + +func (o GetStreamProcessorsResultOptionsOutput) ToGetStreamProcessorsResultOptionsOutput() GetStreamProcessorsResultOptionsOutput { + return o +} + +func (o GetStreamProcessorsResultOptionsOutput) ToGetStreamProcessorsResultOptionsOutputWithContext(ctx context.Context) GetStreamProcessorsResultOptionsOutput { + return o +} + +// 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. +func (o GetStreamProcessorsResultOptionsOutput) Dlq() GetStreamProcessorsResultOptionsDlqOutput { + return o.ApplyT(func(v GetStreamProcessorsResultOptions) GetStreamProcessorsResultOptionsDlq { return v.Dlq }).(GetStreamProcessorsResultOptionsDlqOutput) +} + +type GetStreamProcessorsResultOptionsDlq struct { + // Name of the collection to use for the DLQ. + Coll string `pulumi:"coll"` + // Name of the connection to write DLQ messages to. Must be an Atlas connection. + ConnectionName string `pulumi:"connectionName"` + // Name of the database to use for the DLQ. + Db string `pulumi:"db"` +} + +// GetStreamProcessorsResultOptionsDlqInput is an input type that accepts GetStreamProcessorsResultOptionsDlqArgs and GetStreamProcessorsResultOptionsDlqOutput values. +// You can construct a concrete instance of `GetStreamProcessorsResultOptionsDlqInput` via: +// +// GetStreamProcessorsResultOptionsDlqArgs{...} +type GetStreamProcessorsResultOptionsDlqInput interface { + pulumi.Input + + ToGetStreamProcessorsResultOptionsDlqOutput() GetStreamProcessorsResultOptionsDlqOutput + ToGetStreamProcessorsResultOptionsDlqOutputWithContext(context.Context) GetStreamProcessorsResultOptionsDlqOutput +} + +type GetStreamProcessorsResultOptionsDlqArgs struct { + // Name of the collection to use for the DLQ. + Coll pulumi.StringInput `pulumi:"coll"` + // Name of the connection to write DLQ messages to. Must be an Atlas connection. + ConnectionName pulumi.StringInput `pulumi:"connectionName"` + // Name of the database to use for the DLQ. + Db pulumi.StringInput `pulumi:"db"` +} + +func (GetStreamProcessorsResultOptionsDlqArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorsResultOptionsDlq)(nil)).Elem() +} + +func (i GetStreamProcessorsResultOptionsDlqArgs) ToGetStreamProcessorsResultOptionsDlqOutput() GetStreamProcessorsResultOptionsDlqOutput { + return i.ToGetStreamProcessorsResultOptionsDlqOutputWithContext(context.Background()) +} + +func (i GetStreamProcessorsResultOptionsDlqArgs) ToGetStreamProcessorsResultOptionsDlqOutputWithContext(ctx context.Context) GetStreamProcessorsResultOptionsDlqOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetStreamProcessorsResultOptionsDlqOutput) +} + +type GetStreamProcessorsResultOptionsDlqOutput struct{ *pulumi.OutputState } + +func (GetStreamProcessorsResultOptionsDlqOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetStreamProcessorsResultOptionsDlq)(nil)).Elem() +} + +func (o GetStreamProcessorsResultOptionsDlqOutput) ToGetStreamProcessorsResultOptionsDlqOutput() GetStreamProcessorsResultOptionsDlqOutput { + return o +} + +func (o GetStreamProcessorsResultOptionsDlqOutput) ToGetStreamProcessorsResultOptionsDlqOutputWithContext(ctx context.Context) GetStreamProcessorsResultOptionsDlqOutput { + return o +} + +// Name of the collection to use for the DLQ. +func (o GetStreamProcessorsResultOptionsDlqOutput) Coll() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResultOptionsDlq) string { return v.Coll }).(pulumi.StringOutput) +} + +// Name of the connection to write DLQ messages to. Must be an Atlas connection. +func (o GetStreamProcessorsResultOptionsDlqOutput) ConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResultOptionsDlq) string { return v.ConnectionName }).(pulumi.StringOutput) +} + +// Name of the database to use for the DLQ. +func (o GetStreamProcessorsResultOptionsDlqOutput) Db() pulumi.StringOutput { + return o.ApplyT(func(v GetStreamProcessorsResultOptionsDlq) string { return v.Db }).(pulumi.StringOutput) +} + type GetThirdPartyIntegrationsResult struct { AccountId string `pulumi:"accountId"` // Your API Key. @@ -49394,6 +50788,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*StreamInstanceDataProcessRegionPtrInput)(nil)).Elem(), StreamInstanceDataProcessRegionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamInstanceStreamConfigInput)(nil)).Elem(), StreamInstanceStreamConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamInstanceStreamConfigPtrInput)(nil)).Elem(), StreamInstanceStreamConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOptionsInput)(nil)).Elem(), StreamProcessorOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOptionsPtrInput)(nil)).Elem(), StreamProcessorOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOptionsDlqInput)(nil)).Elem(), StreamProcessorOptionsDlqArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorOptionsDlqPtrInput)(nil)).Elem(), StreamProcessorOptionsDlqArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*X509AuthenticationDatabaseUserCertificateInput)(nil)).Elem(), X509AuthenticationDatabaseUserCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*X509AuthenticationDatabaseUserCertificateArrayInput)(nil)).Elem(), X509AuthenticationDatabaseUserCertificateArray{}) pulumi.RegisterInputType(reflect.TypeOf((*Get509AuthenticationDatabaseUserCertificateInput)(nil)).Elem(), Get509AuthenticationDatabaseUserCertificateArgs{}) @@ -49645,6 +51043,11 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetDatabaseUsersResultRoleArrayInput)(nil)).Elem(), GetDatabaseUsersResultRoleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabaseUsersResultScopeInput)(nil)).Elem(), GetDatabaseUsersResultScopeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabaseUsersResultScopeArrayInput)(nil)).Elem(), GetDatabaseUsersResultScopeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetEncryptionAtRestAwsKmsConfigInput)(nil)).Elem(), GetEncryptionAtRestAwsKmsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetEncryptionAtRestAzureKeyVaultConfigInput)(nil)).Elem(), GetEncryptionAtRestAzureKeyVaultConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetEncryptionAtRestGoogleCloudKmsConfigInput)(nil)).Elem(), GetEncryptionAtRestGoogleCloudKmsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetEncryptionAtRestPrivateEndpointsResultInput)(nil)).Elem(), GetEncryptionAtRestPrivateEndpointsResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetEncryptionAtRestPrivateEndpointsResultArrayInput)(nil)).Elem(), GetEncryptionAtRestPrivateEndpointsResultArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetEventTriggerEventProcessorInput)(nil)).Elem(), GetEventTriggerEventProcessorArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetEventTriggerEventProcessorArrayInput)(nil)).Elem(), GetEventTriggerEventProcessorArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetEventTriggerEventProcessorAwsEventbridgeInput)(nil)).Elem(), GetEventTriggerEventProcessorAwsEventbridgeArgs{}) @@ -49853,6 +51256,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetStreamInstancesResultArrayInput)(nil)).Elem(), GetStreamInstancesResultArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetStreamInstancesResultDataProcessRegionInput)(nil)).Elem(), GetStreamInstancesResultDataProcessRegionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetStreamInstancesResultStreamConfigInput)(nil)).Elem(), GetStreamInstancesResultStreamConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetStreamProcessorOptionsInput)(nil)).Elem(), GetStreamProcessorOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetStreamProcessorOptionsDlqInput)(nil)).Elem(), GetStreamProcessorOptionsDlqArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetStreamProcessorsResultInput)(nil)).Elem(), GetStreamProcessorsResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetStreamProcessorsResultArrayInput)(nil)).Elem(), GetStreamProcessorsResultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetStreamProcessorsResultOptionsInput)(nil)).Elem(), GetStreamProcessorsResultOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetStreamProcessorsResultOptionsDlqInput)(nil)).Elem(), GetStreamProcessorsResultOptionsDlqArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetThirdPartyIntegrationsResultInput)(nil)).Elem(), GetThirdPartyIntegrationsResultArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetThirdPartyIntegrationsResultArrayInput)(nil)).Elem(), GetThirdPartyIntegrationsResultArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetX509AuthenticationDatabaseUserCertificateInput)(nil)).Elem(), GetX509AuthenticationDatabaseUserCertificateArgs{}) @@ -50083,6 +51492,10 @@ func init() { pulumi.RegisterOutputType(StreamInstanceDataProcessRegionPtrOutput{}) pulumi.RegisterOutputType(StreamInstanceStreamConfigOutput{}) pulumi.RegisterOutputType(StreamInstanceStreamConfigPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorOptionsOutput{}) + pulumi.RegisterOutputType(StreamProcessorOptionsPtrOutput{}) + pulumi.RegisterOutputType(StreamProcessorOptionsDlqOutput{}) + pulumi.RegisterOutputType(StreamProcessorOptionsDlqPtrOutput{}) pulumi.RegisterOutputType(X509AuthenticationDatabaseUserCertificateOutput{}) pulumi.RegisterOutputType(X509AuthenticationDatabaseUserCertificateArrayOutput{}) pulumi.RegisterOutputType(Get509AuthenticationDatabaseUserCertificateOutput{}) @@ -50334,6 +51747,11 @@ func init() { pulumi.RegisterOutputType(GetDatabaseUsersResultRoleArrayOutput{}) pulumi.RegisterOutputType(GetDatabaseUsersResultScopeOutput{}) pulumi.RegisterOutputType(GetDatabaseUsersResultScopeArrayOutput{}) + pulumi.RegisterOutputType(GetEncryptionAtRestAwsKmsConfigOutput{}) + pulumi.RegisterOutputType(GetEncryptionAtRestAzureKeyVaultConfigOutput{}) + pulumi.RegisterOutputType(GetEncryptionAtRestGoogleCloudKmsConfigOutput{}) + pulumi.RegisterOutputType(GetEncryptionAtRestPrivateEndpointsResultOutput{}) + pulumi.RegisterOutputType(GetEncryptionAtRestPrivateEndpointsResultArrayOutput{}) pulumi.RegisterOutputType(GetEventTriggerEventProcessorOutput{}) pulumi.RegisterOutputType(GetEventTriggerEventProcessorArrayOutput{}) pulumi.RegisterOutputType(GetEventTriggerEventProcessorAwsEventbridgeOutput{}) @@ -50542,6 +51960,12 @@ func init() { pulumi.RegisterOutputType(GetStreamInstancesResultArrayOutput{}) pulumi.RegisterOutputType(GetStreamInstancesResultDataProcessRegionOutput{}) pulumi.RegisterOutputType(GetStreamInstancesResultStreamConfigOutput{}) + pulumi.RegisterOutputType(GetStreamProcessorOptionsOutput{}) + pulumi.RegisterOutputType(GetStreamProcessorOptionsDlqOutput{}) + pulumi.RegisterOutputType(GetStreamProcessorsResultOutput{}) + pulumi.RegisterOutputType(GetStreamProcessorsResultArrayOutput{}) + pulumi.RegisterOutputType(GetStreamProcessorsResultOptionsOutput{}) + pulumi.RegisterOutputType(GetStreamProcessorsResultOptionsDlqOutput{}) pulumi.RegisterOutputType(GetThirdPartyIntegrationsResultOutput{}) pulumi.RegisterOutputType(GetThirdPartyIntegrationsResultArrayOutput{}) pulumi.RegisterOutputType(GetX509AuthenticationDatabaseUserCertificateOutput{}) diff --git a/sdk/go/mongodbatlas/streamProcessor.go b/sdk/go/mongodbatlas/streamProcessor.go new file mode 100644 index 00000000..e9a43a10 --- /dev/null +++ b/sdk/go/mongodbatlas/streamProcessor.go @@ -0,0 +1,346 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package mongodbatlas + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +type StreamProcessor struct { + pulumi.CustomResourceState + + // Human-readable label that identifies the stream instance. + InstanceName pulumi.StringOutput `pulumi:"instanceName"` + // Optional configuration for the stream processor. + Options StreamProcessorOptionsPtrOutput `pulumi:"options"` + // 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + Pipeline pulumi.StringOutput `pulumi:"pipeline"` + // Human-readable label that identifies the stream processor. + ProcessorName pulumi.StringOutput `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // 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. **NOTE** When a stream processor is created, + // the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + // state is set to STARTED. + State pulumi.StringOutput `pulumi:"state"` + // 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. + Stats pulumi.StringOutput `pulumi:"stats"` +} + +// NewStreamProcessor registers a new resource with the given unique name, arguments, and options. +func NewStreamProcessor(ctx *pulumi.Context, + name string, args *StreamProcessorArgs, opts ...pulumi.ResourceOption) (*StreamProcessor, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.InstanceName == nil { + return nil, errors.New("invalid value for required argument 'InstanceName'") + } + if args.Pipeline == nil { + return nil, errors.New("invalid value for required argument 'Pipeline'") + } + if args.ProcessorName == nil { + return nil, errors.New("invalid value for required argument 'ProcessorName'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource StreamProcessor + err := ctx.RegisterResource("mongodbatlas:index/streamProcessor:StreamProcessor", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetStreamProcessor gets an existing StreamProcessor resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetStreamProcessor(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *StreamProcessorState, opts ...pulumi.ResourceOption) (*StreamProcessor, error) { + var resource StreamProcessor + err := ctx.ReadResource("mongodbatlas:index/streamProcessor:StreamProcessor", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering StreamProcessor resources. +type streamProcessorState struct { + // Human-readable label that identifies the stream instance. + InstanceName *string `pulumi:"instanceName"` + // Optional configuration for the stream processor. + Options *StreamProcessorOptions `pulumi:"options"` + // 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + Pipeline *string `pulumi:"pipeline"` + // Human-readable label that identifies the stream processor. + ProcessorName *string `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId *string `pulumi:"projectId"` + // 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. **NOTE** When a stream processor is created, + // the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + // state is set to STARTED. + State *string `pulumi:"state"` + // 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. + Stats *string `pulumi:"stats"` +} + +type StreamProcessorState struct { + // Human-readable label that identifies the stream instance. + InstanceName pulumi.StringPtrInput + // Optional configuration for the stream processor. + Options StreamProcessorOptionsPtrInput + // 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + Pipeline pulumi.StringPtrInput + // Human-readable label that identifies the stream processor. + ProcessorName pulumi.StringPtrInput + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId pulumi.StringPtrInput + // 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. **NOTE** When a stream processor is created, + // the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + // state is set to STARTED. + State pulumi.StringPtrInput + // 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. + Stats pulumi.StringPtrInput +} + +func (StreamProcessorState) ElementType() reflect.Type { + return reflect.TypeOf((*streamProcessorState)(nil)).Elem() +} + +type streamProcessorArgs struct { + // Human-readable label that identifies the stream instance. + InstanceName string `pulumi:"instanceName"` + // Optional configuration for the stream processor. + Options *StreamProcessorOptions `pulumi:"options"` + // 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + Pipeline string `pulumi:"pipeline"` + // Human-readable label that identifies the stream processor. + ProcessorName string `pulumi:"processorName"` + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId string `pulumi:"projectId"` + // 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. **NOTE** When a stream processor is created, + // the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + // state is set to STARTED. + State *string `pulumi:"state"` +} + +// The set of arguments for constructing a StreamProcessor resource. +type StreamProcessorArgs struct { + // Human-readable label that identifies the stream instance. + InstanceName pulumi.StringInput + // Optional configuration for the stream processor. + Options StreamProcessorOptionsPtrInput + // 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + Pipeline pulumi.StringInput + // Human-readable label that identifies the stream processor. + ProcessorName pulumi.StringInput + // Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + ProjectId pulumi.StringInput + // 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. **NOTE** When a stream processor is created, + // the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + // state is set to STARTED. + State pulumi.StringPtrInput +} + +func (StreamProcessorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*streamProcessorArgs)(nil)).Elem() +} + +type StreamProcessorInput interface { + pulumi.Input + + ToStreamProcessorOutput() StreamProcessorOutput + ToStreamProcessorOutputWithContext(ctx context.Context) StreamProcessorOutput +} + +func (*StreamProcessor) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessor)(nil)).Elem() +} + +func (i *StreamProcessor) ToStreamProcessorOutput() StreamProcessorOutput { + return i.ToStreamProcessorOutputWithContext(context.Background()) +} + +func (i *StreamProcessor) ToStreamProcessorOutputWithContext(ctx context.Context) StreamProcessorOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorOutput) +} + +// StreamProcessorArrayInput is an input type that accepts StreamProcessorArray and StreamProcessorArrayOutput values. +// You can construct a concrete instance of `StreamProcessorArrayInput` via: +// +// StreamProcessorArray{ StreamProcessorArgs{...} } +type StreamProcessorArrayInput interface { + pulumi.Input + + ToStreamProcessorArrayOutput() StreamProcessorArrayOutput + ToStreamProcessorArrayOutputWithContext(context.Context) StreamProcessorArrayOutput +} + +type StreamProcessorArray []StreamProcessorInput + +func (StreamProcessorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StreamProcessor)(nil)).Elem() +} + +func (i StreamProcessorArray) ToStreamProcessorArrayOutput() StreamProcessorArrayOutput { + return i.ToStreamProcessorArrayOutputWithContext(context.Background()) +} + +func (i StreamProcessorArray) ToStreamProcessorArrayOutputWithContext(ctx context.Context) StreamProcessorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorArrayOutput) +} + +// StreamProcessorMapInput is an input type that accepts StreamProcessorMap and StreamProcessorMapOutput values. +// You can construct a concrete instance of `StreamProcessorMapInput` via: +// +// StreamProcessorMap{ "key": StreamProcessorArgs{...} } +type StreamProcessorMapInput interface { + pulumi.Input + + ToStreamProcessorMapOutput() StreamProcessorMapOutput + ToStreamProcessorMapOutputWithContext(context.Context) StreamProcessorMapOutput +} + +type StreamProcessorMap map[string]StreamProcessorInput + +func (StreamProcessorMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StreamProcessor)(nil)).Elem() +} + +func (i StreamProcessorMap) ToStreamProcessorMapOutput() StreamProcessorMapOutput { + return i.ToStreamProcessorMapOutputWithContext(context.Background()) +} + +func (i StreamProcessorMap) ToStreamProcessorMapOutputWithContext(ctx context.Context) StreamProcessorMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamProcessorMapOutput) +} + +type StreamProcessorOutput struct{ *pulumi.OutputState } + +func (StreamProcessorOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamProcessor)(nil)).Elem() +} + +func (o StreamProcessorOutput) ToStreamProcessorOutput() StreamProcessorOutput { + return o +} + +func (o StreamProcessorOutput) ToStreamProcessorOutputWithContext(ctx context.Context) StreamProcessorOutput { + return o +} + +// Human-readable label that identifies the stream instance. +func (o StreamProcessorOutput) InstanceName() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.InstanceName }).(pulumi.StringOutput) +} + +// Optional configuration for the stream processor. +func (o StreamProcessorOutput) Options() StreamProcessorOptionsPtrOutput { + return o.ApplyT(func(v *StreamProcessor) StreamProcessorOptionsPtrOutput { return v.Options }).(StreamProcessorOptionsPtrOutput) +} + +// 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) +func (o StreamProcessorOutput) Pipeline() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.Pipeline }).(pulumi.StringOutput) +} + +// Human-readable label that identifies the stream processor. +func (o StreamProcessorOutput) ProcessorName() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.ProcessorName }).(pulumi.StringOutput) +} + +// Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. +func (o StreamProcessorOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// 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. **NOTE** When a stream processor is created, +// the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the +// state is set to STARTED. +func (o StreamProcessorOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// 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. +func (o StreamProcessorOutput) Stats() pulumi.StringOutput { + return o.ApplyT(func(v *StreamProcessor) pulumi.StringOutput { return v.Stats }).(pulumi.StringOutput) +} + +type StreamProcessorArrayOutput struct{ *pulumi.OutputState } + +func (StreamProcessorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StreamProcessor)(nil)).Elem() +} + +func (o StreamProcessorArrayOutput) ToStreamProcessorArrayOutput() StreamProcessorArrayOutput { + return o +} + +func (o StreamProcessorArrayOutput) ToStreamProcessorArrayOutputWithContext(ctx context.Context) StreamProcessorArrayOutput { + return o +} + +func (o StreamProcessorArrayOutput) Index(i pulumi.IntInput) StreamProcessorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StreamProcessor { + return vs[0].([]*StreamProcessor)[vs[1].(int)] + }).(StreamProcessorOutput) +} + +type StreamProcessorMapOutput struct{ *pulumi.OutputState } + +func (StreamProcessorMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StreamProcessor)(nil)).Elem() +} + +func (o StreamProcessorMapOutput) ToStreamProcessorMapOutput() StreamProcessorMapOutput { + return o +} + +func (o StreamProcessorMapOutput) ToStreamProcessorMapOutputWithContext(ctx context.Context) StreamProcessorMapOutput { + return o +} + +func (o StreamProcessorMapOutput) MapIndex(k pulumi.StringInput) StreamProcessorOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StreamProcessor { + return vs[0].(map[string]*StreamProcessor)[vs[1].(string)] + }).(StreamProcessorOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorInput)(nil)).Elem(), &StreamProcessor{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorArrayInput)(nil)).Elem(), StreamProcessorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamProcessorMapInput)(nil)).Elem(), StreamProcessorMap{}) + pulumi.RegisterOutputType(StreamProcessorOutput{}) + pulumi.RegisterOutputType(StreamProcessorArrayOutput{}) + pulumi.RegisterOutputType(StreamProcessorMapOutput{}) +} diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index a715f518..4ef6b3ca 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -44,7 +44,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:pulumi:0.15.0") + implementation("com.pulumi:pulumi:0.16.0") } task sourcesJar(type: Jar) { diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedCluster.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedCluster.java index 4681e6ec..ec3d0b38 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedCluster.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedCluster.java @@ -723,10 +723,10 @@ public Output globalClusterSelfManagedSharding() { * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ @Export(name="labels", refs={List.class,AdvancedClusterLabel.class}, tree="[0,1]") private Output> labels; @@ -813,6 +813,20 @@ public Output pitEnabled() { public Output projectId() { return this.projectId; } + /** + * 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) + * + */ + @Export(name="replicaSetScalingStrategy", refs={String.class}, tree="[0]") + private Output replicaSetScalingStrategy; + + /** + * @return 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) + * + */ + public Output replicaSetScalingStrategy() { + return this.replicaSetScalingStrategy; + } /** * 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedClusterArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedClusterArgs.java index f1718107..4765dac6 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/AdvancedClusterArgs.java @@ -172,10 +172,10 @@ public Optional> globalClusterSelfManagedSharding() { * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ @Import(name="labels") private @Nullable Output> labels; @@ -183,10 +183,10 @@ public Optional> globalClusterSelfManagedSharding() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Optional>> labels() { return Optional.ofNullable(this.labels); } @@ -258,6 +258,21 @@ public Output projectId() { return this.projectId; } + /** + * 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) + * + */ + @Import(name="replicaSetScalingStrategy") + private @Nullable Output replicaSetScalingStrategy; + + /** + * @return 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) + * + */ + public Optional> replicaSetScalingStrategy() { + return Optional.ofNullable(this.replicaSetScalingStrategy); + } + /** * 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below * @@ -369,6 +384,7 @@ private AdvancedClusterArgs(AdvancedClusterArgs $) { this.paused = $.paused; this.pitEnabled = $.pitEnabled; this.projectId = $.projectId; + this.replicaSetScalingStrategy = $.replicaSetScalingStrategy; this.replicationSpecs = $.replicationSpecs; this.retainBackupsEnabled = $.retainBackupsEnabled; this.rootCertType = $.rootCertType; @@ -589,10 +605,10 @@ public Builder globalClusterSelfManagedSharding(Boolean globalClusterSelfManaged * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; @@ -604,10 +620,10 @@ public Builder labels(@Nullable Output> labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(List labels) { return labels(Output.of(labels)); } @@ -618,10 +634,10 @@ public Builder labels(List labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(AdvancedClusterLabelArgs... labels) { return labels(List.of(labels)); } @@ -719,6 +735,27 @@ public Builder projectId(String projectId) { return projectId(Output.of(projectId)); } + /** + * @param replicaSetScalingStrategy 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) + * + * @return builder + * + */ + public Builder replicaSetScalingStrategy(@Nullable Output replicaSetScalingStrategy) { + $.replicaSetScalingStrategy = replicaSetScalingStrategy; + return this; + } + + /** + * @param replicaSetScalingStrategy 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) + * + * @return builder + * + */ + public Builder replicaSetScalingStrategy(String replicaSetScalingStrategy) { + return replicaSetScalingStrategy(Output.of(replicaSetScalingStrategy)); + } + /** * @param replicationSpecs 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/Cluster.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/Cluster.java index b7cc4321..8267233c 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/Cluster.java @@ -689,10 +689,10 @@ public Output encryptionAtRestProvider() { * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ @Export(name="labels", refs={List.class,ClusterLabel.class}, tree="[0,1]") private Output> labels; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/ClusterArgs.java index de23eff6..24ab6080 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/ClusterArgs.java @@ -227,10 +227,10 @@ public Optional> encryptionAtRestProvider() { * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ @Import(name="labels") private @Nullable Output> labels; @@ -238,10 +238,10 @@ public Optional> encryptionAtRestProvider() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Optional>> labels() { return Optional.ofNullable(this.labels); } @@ -902,10 +902,10 @@ public Builder encryptionAtRestProvider(String encryptionAtRestProvider) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; @@ -917,10 +917,10 @@ public Builder labels(@Nullable Output> labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(List labels) { return labels(Output.of(labels)); } @@ -931,10 +931,10 @@ public Builder labels(List labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(ClusterLabelArgs... labels) { return labels(List.of(labels)); } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRest.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRest.java index 7f5f38d2..707ac158 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRest.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRest.java @@ -17,46 +17,59 @@ import java.util.Optional; import javax.annotation.Nullable; -/** - * ## Import - * - * Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g. - * - * ```sh - * $ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934 - * ``` - * For more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management) - * - */ @ResourceType(type="mongodbatlas:index/encryptionAtRest:EncryptionAtRest") public class EncryptionAtRest extends com.pulumi.resources.CustomResource { + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ @Export(name="awsKmsConfig", refs={EncryptionAtRestAwsKmsConfig.class}, tree="[0]") private Output awsKmsConfig; + /** + * @return Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ public Output> awsKmsConfig() { return Codegen.optional(this.awsKmsConfig); } + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ @Export(name="azureKeyVaultConfig", refs={EncryptionAtRestAzureKeyVaultConfig.class}, tree="[0]") private Output azureKeyVaultConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ public Output> azureKeyVaultConfig() { return Codegen.optional(this.azureKeyVaultConfig); } + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ @Export(name="googleCloudKmsConfig", refs={EncryptionAtRestGoogleCloudKmsConfig.class}, tree="[0]") private Output googleCloudKmsConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ public Output> googleCloudKmsConfig() { return Codegen.optional(this.googleCloudKmsConfig); } /** - * The unique identifier for the project. + * Unique 24-hexadecimal digit string that identifies your project. * */ @Export(name="projectId", refs={String.class}, tree="[0]") private Output projectId; /** - * @return The unique identifier for the project. + * @return Unique 24-hexadecimal digit string that identifies your project. * */ public Output projectId() { diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestArgs.java index bbbdfe48..9d64eeb2 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestArgs.java @@ -19,36 +19,60 @@ public final class EncryptionAtRestArgs extends com.pulumi.resources.ResourceArg public static final EncryptionAtRestArgs Empty = new EncryptionAtRestArgs(); + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ @Import(name="awsKmsConfig") private @Nullable Output awsKmsConfig; + /** + * @return Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ public Optional> awsKmsConfig() { return Optional.ofNullable(this.awsKmsConfig); } + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ @Import(name="azureKeyVaultConfig") private @Nullable Output azureKeyVaultConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ public Optional> azureKeyVaultConfig() { return Optional.ofNullable(this.azureKeyVaultConfig); } + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ @Import(name="googleCloudKmsConfig") private @Nullable Output googleCloudKmsConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ public Optional> googleCloudKmsConfig() { return Optional.ofNullable(this.googleCloudKmsConfig); } /** - * The unique identifier for the project. + * Unique 24-hexadecimal digit string that identifies your project. * */ @Import(name="projectId", required=true) private Output projectId; /** - * @return The unique identifier for the project. + * @return Unique 24-hexadecimal digit string that identifies your project. * */ public Output projectId() { @@ -82,35 +106,71 @@ public Builder(EncryptionAtRestArgs defaults) { $ = new EncryptionAtRestArgs(Objects.requireNonNull(defaults)); } + /** + * @param awsKmsConfig Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + * @return builder + * + */ public Builder awsKmsConfig(@Nullable Output awsKmsConfig) { $.awsKmsConfig = awsKmsConfig; return this; } + /** + * @param awsKmsConfig Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + * @return builder + * + */ public Builder awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs awsKmsConfig) { return awsKmsConfig(Output.of(awsKmsConfig)); } + /** + * @param azureKeyVaultConfig Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + * @return builder + * + */ public Builder azureKeyVaultConfig(@Nullable Output azureKeyVaultConfig) { $.azureKeyVaultConfig = azureKeyVaultConfig; return this; } + /** + * @param azureKeyVaultConfig Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + * @return builder + * + */ public Builder azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs azureKeyVaultConfig) { return azureKeyVaultConfig(Output.of(azureKeyVaultConfig)); } + /** + * @param googleCloudKmsConfig Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + * @return builder + * + */ public Builder googleCloudKmsConfig(@Nullable Output googleCloudKmsConfig) { $.googleCloudKmsConfig = googleCloudKmsConfig; return this; } + /** + * @param googleCloudKmsConfig Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + * @return builder + * + */ public Builder googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs googleCloudKmsConfig) { return googleCloudKmsConfig(Output.of(googleCloudKmsConfig)); } /** - * @param projectId The unique identifier for the project. + * @param projectId Unique 24-hexadecimal digit string that identifies your project. * * @return builder * @@ -121,7 +181,7 @@ public Builder projectId(Output projectId) { } /** - * @param projectId The unique identifier for the project. + * @param projectId Unique 24-hexadecimal digit string that identifies your project. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestPrivateEndpoint.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestPrivateEndpoint.java new file mode 100644 index 00000000..fda3f420 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestPrivateEndpoint.java @@ -0,0 +1,257 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpointArgs; +import com.pulumi.mongodbatlas.Utilities; +import com.pulumi.mongodbatlas.inputs.EncryptionAtRestPrivateEndpointState; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * ## # Resource: mongodbatlas.EncryptionAtRestPrivateEndpoint + * + * `mongodbatlas.EncryptionAtRestPrivateEndpoint` 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. + * + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). + * + * > **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `mongodbatlas.EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled. + * + * > **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. + * + * ## Example Usage + * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * + * ### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link + * + * Make sure to reference the complete example section for detailed steps and considerations. + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.mongodbatlas.EncryptionAtRest;
+ * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+ * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;
+ * import com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpoint;
+ * import com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpointArgs;
+ * import com.pulumi.azapi.updateResource;
+ * import com.pulumi.azapi.UpdateResourceArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App }{{@code
+ *     public static void main(String[] args) }{{@code
+ *         Pulumi.run(App::stack);
+ *     }}{@code
+ * 
+ *     public static void stack(Context ctx) }{{@code
+ *         var ear = new EncryptionAtRest("ear", EncryptionAtRestArgs.builder()
+ *             .projectId(atlasProjectId)
+ *             .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()
+ *                 .requirePrivateNetworking(true)
+ *                 .enabled(true)
+ *                 .azureEnvironment("AZURE")
+ *                 .tenantId(azureTenantId)
+ *                 .subscriptionId(azureSubscriptionId)
+ *                 .clientId(azureClientId)
+ *                 .secret(azureClientSecret)
+ *                 .resourceGroupName(azureResourceGroupName)
+ *                 .keyVaultName(azureKeyVaultName)
+ *                 .keyIdentifier(azureKeyIdentifier)
+ *                 .build())
+ *             .build());
+ * 
+ *         // Creates private endpoint
+ *         var endpoint = new EncryptionAtRestPrivateEndpoint("endpoint", EncryptionAtRestPrivateEndpointArgs.builder()
+ *             .projectId(ear.projectId())
+ *             .cloudProvider("AZURE")
+ *             .regionName(azureRegionName)
+ *             .build());
+ * 
+ *         final var keyVaultResourceId = String.format("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.KeyVault/vaults/%s", azureSubscriptionId,azureResourceGroupName,azureKeyVaultName);
+ * 
+ *         // Approves private endpoint connection from Azure Key Vault
+ *         var approval = new UpdateResource("approval", UpdateResourceArgs.builder()
+ *             .type("Microsoft.KeyVault/Vaults/PrivateEndpointConnections}{@literal @}{@code 2023-07-01")
+ *             .name(endpoint.privateEndpointConnectionName())
+ *             .parentId(keyVaultResourceId)
+ *             .body(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("properties", jsonObject(
+ *                         jsonProperty("privateLinkServiceConnectionState", jsonObject(
+ *                             jsonProperty("description", "Approved via Terraform"),
+ *                             jsonProperty("status", "Approved")
+ *                         ))
+ *                     ))
+ *                 )))
+ *             .build());
+ * 
+ *     }}{@code
+ * }}{@code
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint") +public class EncryptionAtRestPrivateEndpoint extends com.pulumi.resources.CustomResource { + /** + * Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + */ + @Export(name="cloudProvider", refs={String.class}, tree="[0]") + private Output cloudProvider; + + /** + * @return Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + */ + public Output cloudProvider() { + return this.cloudProvider; + } + /** + * Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + @Export(name="errorMessage", refs={String.class}, tree="[0]") + private Output errorMessage; + + /** + * @return Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + public Output errorMessage() { + return this.errorMessage; + } + /** + * Connection name of the Azure Private Endpoint. + * + */ + @Export(name="privateEndpointConnectionName", refs={String.class}, tree="[0]") + private Output privateEndpointConnectionName; + + /** + * @return Connection name of the Azure Private Endpoint. + * + */ + public Output privateEndpointConnectionName() { + return this.privateEndpointConnectionName; + } + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Export(name="projectId", refs={String.class}, tree="[0]") + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Output projectId() { + return this.projectId; + } + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + @Export(name="regionName", refs={String.class}, tree="[0]") + private Output regionName; + + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + public Output regionName() { + return this.regionName; + } + /** + * State of the Encryption At Rest private endpoint. + * + */ + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + /** + * @return State of the Encryption At Rest private endpoint. + * + */ + public Output status() { + return this.status; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public EncryptionAtRestPrivateEndpoint(java.lang.String name) { + this(name, EncryptionAtRestPrivateEndpointArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public EncryptionAtRestPrivateEndpoint(java.lang.String name, EncryptionAtRestPrivateEndpointArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public EncryptionAtRestPrivateEndpoint(java.lang.String name, EncryptionAtRestPrivateEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private EncryptionAtRestPrivateEndpoint(java.lang.String name, Output id, @Nullable EncryptionAtRestPrivateEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint", name, state, makeResourceOptions(options, id), false); + } + + private static EncryptionAtRestPrivateEndpointArgs makeArgs(EncryptionAtRestPrivateEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EncryptionAtRestPrivateEndpointArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static EncryptionAtRestPrivateEndpoint get(java.lang.String name, Output id, @Nullable EncryptionAtRestPrivateEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new EncryptionAtRestPrivateEndpoint(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestPrivateEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestPrivateEndpointArgs.java new file mode 100644 index 00000000..f15ace46 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/EncryptionAtRestPrivateEndpointArgs.java @@ -0,0 +1,165 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class EncryptionAtRestPrivateEndpointArgs extends com.pulumi.resources.ResourceArgs { + + public static final EncryptionAtRestPrivateEndpointArgs Empty = new EncryptionAtRestPrivateEndpointArgs(); + + /** + * Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + */ + @Import(name="cloudProvider", required=true) + private Output cloudProvider; + + /** + * @return Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + */ + public Output cloudProvider() { + return this.cloudProvider; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Output projectId() { + return this.projectId; + } + + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + @Import(name="regionName", required=true) + private Output regionName; + + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + public Output regionName() { + return this.regionName; + } + + private EncryptionAtRestPrivateEndpointArgs() {} + + private EncryptionAtRestPrivateEndpointArgs(EncryptionAtRestPrivateEndpointArgs $) { + this.cloudProvider = $.cloudProvider; + this.projectId = $.projectId; + this.regionName = $.regionName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EncryptionAtRestPrivateEndpointArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EncryptionAtRestPrivateEndpointArgs $; + + public Builder() { + $ = new EncryptionAtRestPrivateEndpointArgs(); + } + + public Builder(EncryptionAtRestPrivateEndpointArgs defaults) { + $ = new EncryptionAtRestPrivateEndpointArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudProvider Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(Output cloudProvider) { + $.cloudProvider = cloudProvider; + return this; + } + + /** + * @param cloudProvider Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(String cloudProvider) { + return cloudProvider(Output.of(cloudProvider)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + /** + * @param regionName Cloud provider region in which the Encryption At Rest private endpoint is located. + * + * @return builder + * + */ + public Builder regionName(Output regionName) { + $.regionName = regionName; + return this; + } + + /** + * @param regionName Cloud provider region in which the Encryption At Rest private endpoint is located. + * + * @return builder + * + */ + public Builder regionName(String regionName) { + return regionName(Output.of(regionName)); + } + + public EncryptionAtRestPrivateEndpointArgs build() { + if ($.cloudProvider == null) { + throw new MissingRequiredPropertyException("EncryptionAtRestPrivateEndpointArgs", "cloudProvider"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("EncryptionAtRestPrivateEndpointArgs", "projectId"); + } + if ($.regionName == null) { + throw new MissingRequiredPropertyException("EncryptionAtRestPrivateEndpointArgs", "regionName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/MongodbatlasFunctions.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/MongodbatlasFunctions.java index bb2d279a..6deaea26 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/MongodbatlasFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/MongodbatlasFunctions.java @@ -78,6 +78,12 @@ import com.pulumi.mongodbatlas.inputs.GetDatabaseUserPlainArgs; import com.pulumi.mongodbatlas.inputs.GetDatabaseUsersArgs; import com.pulumi.mongodbatlas.inputs.GetDatabaseUsersPlainArgs; +import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs; +import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPlainArgs; +import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs; +import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointPlainArgs; +import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs; +import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsPlainArgs; import com.pulumi.mongodbatlas.inputs.GetEventTriggerArgs; import com.pulumi.mongodbatlas.inputs.GetEventTriggerPlainArgs; import com.pulumi.mongodbatlas.inputs.GetEventTriggersArgs; @@ -153,6 +159,8 @@ import com.pulumi.mongodbatlas.inputs.GetProjectInvitationPlainArgs; import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs; import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListPlainArgs; +import com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesArgs; +import com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesPlainArgs; import com.pulumi.mongodbatlas.inputs.GetProjectPlainArgs; import com.pulumi.mongodbatlas.inputs.GetProjectsArgs; import com.pulumi.mongodbatlas.inputs.GetProjectsPlainArgs; @@ -184,6 +192,10 @@ import com.pulumi.mongodbatlas.inputs.GetStreamInstancePlainArgs; import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs; import com.pulumi.mongodbatlas.inputs.GetStreamInstancesPlainArgs; +import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs; +import com.pulumi.mongodbatlas.inputs.GetStreamProcessorPlainArgs; +import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs; +import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsPlainArgs; import com.pulumi.mongodbatlas.inputs.GetTeamArgs; import com.pulumi.mongodbatlas.inputs.GetTeamPlainArgs; import com.pulumi.mongodbatlas.inputs.GetTeamsArgs; @@ -230,6 +242,9 @@ import com.pulumi.mongodbatlas.outputs.GetDataLakePipelinesInvokeResult; import com.pulumi.mongodbatlas.outputs.GetDatabaseUserResult; import com.pulumi.mongodbatlas.outputs.GetDatabaseUsersInvokeResult; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestPrivateEndpointResult; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestPrivateEndpointsInvokeResult; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestResult; import com.pulumi.mongodbatlas.outputs.GetEventTriggerResult; import com.pulumi.mongodbatlas.outputs.GetEventTriggersInvokeResult; import com.pulumi.mongodbatlas.outputs.GetFederatedDatabaseInstanceResult; @@ -267,6 +282,7 @@ import com.pulumi.mongodbatlas.outputs.GetProjectApiKeysInvokeResult; import com.pulumi.mongodbatlas.outputs.GetProjectInvitationResult; import com.pulumi.mongodbatlas.outputs.GetProjectIpAccessListResult; +import com.pulumi.mongodbatlas.outputs.GetProjectIpAddressesResult; import com.pulumi.mongodbatlas.outputs.GetProjectResult; import com.pulumi.mongodbatlas.outputs.GetProjectsInvokeResult; import com.pulumi.mongodbatlas.outputs.GetPushBasedLogExportResult; @@ -284,6 +300,8 @@ import com.pulumi.mongodbatlas.outputs.GetStreamConnectionsInvokeResult; import com.pulumi.mongodbatlas.outputs.GetStreamInstanceResult; import com.pulumi.mongodbatlas.outputs.GetStreamInstancesInvokeResult; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorResult; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorsInvokeResult; import com.pulumi.mongodbatlas.outputs.GetTeamResult; import com.pulumi.mongodbatlas.outputs.GetTeamsResult; import com.pulumi.mongodbatlas.outputs.GetThirdPartyIntegrationResult; @@ -10812,90 +10830,25 @@ public static CompletableFuture getDatabaseUsersPl return Deployment.getInstance().invokeAsync("mongodbatlas:index/getDatabaseUsers:getDatabaseUsers", TypeShape.of(GetDatabaseUsersInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.EventTrigger - * - * `mongodbatlas.EventTrigger` describes an Event Trigger. - * - */ - public static Output getEventTrigger(GetEventTriggerArgs args) { - return getEventTrigger(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.EventTrigger - * - * `mongodbatlas.EventTrigger` describes an Event Trigger. - * - */ - public static CompletableFuture getEventTriggerPlain(GetEventTriggerPlainArgs args) { - return getEventTriggerPlain(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.EventTrigger - * - * `mongodbatlas.EventTrigger` describes an Event Trigger. - * - */ - public static Output getEventTrigger(GetEventTriggerArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getEventTrigger:getEventTrigger", TypeShape.of(GetEventTriggerResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.EventTrigger - * - * `mongodbatlas.EventTrigger` describes an Event Trigger. - * - */ - public static CompletableFuture getEventTriggerPlain(GetEventTriggerPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEventTrigger:getEventTrigger", TypeShape.of(GetEventTriggerResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.getEventTriggers - * - * `mongodbatlas.getEventTriggers` describes all Event Triggers. - * - */ - public static Output getEventTriggers(GetEventTriggersArgs args) { - return getEventTriggers(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.getEventTriggers - * - * `mongodbatlas.getEventTriggers` describes all Event Triggers. - * - */ - public static CompletableFuture getEventTriggersPlain(GetEventTriggersPlainArgs args) { - return getEventTriggersPlain(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.getEventTriggers - * - * `mongodbatlas.getEventTriggers` describes all Event Triggers. - * - */ - public static Output getEventTriggers(GetEventTriggersArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getEventTriggers:getEventTriggers", TypeShape.of(GetEventTriggersInvokeResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.getEventTriggers + * ## # Data Source: mongodbatlas.EncryptionAtRest * - * `mongodbatlas.getEventTriggers` describes all Event Triggers. + * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: * - */ - public static CompletableFuture getEventTriggersPlain(GetEventTriggersPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEventTriggers:getEventTriggers", TypeShape.of(GetEventTriggersInvokeResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.FederatedDatabaseInstance + * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) * - * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source. + * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. + * > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * * ## Example Usage * - * ### S With MongoDB Atlas Cluster As Storage Database + * ### S * + * ### Configuring encryption at rest using customer key management in AWS * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -10904,8 +10857,19 @@ public static CompletableFuture getEventTriggersPl
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10919,19 +10883,60 @@ public static CompletableFuture getEventTriggersPl
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .providerName("AWS")
+     *             .build());
+     * 
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
+     *                 .build())
+     *             .build());
+     * 
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .customerMasterKeyId(kmsKey.id())
+     *                 .region(atlasRegion)
+     *                 .roleId(authRole.roleId())
+     *                 .build())
+     *             .build());
+     * 
+     *         var cluster = new AdvancedCluster("cluster", AdvancedClusterArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .name("MyCluster")
+     *             .clusterType("REPLICASET")
+     *             .backupEnabled(true)
+     *             .encryptionAtRestProvider("AWS")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .priority(7)
+     *                     .providerName("AWS")
+     *                     .regionName("US_EAST_1")
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isAwsKmsEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.awsKmsConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### S With Amazon S3 Bucket As Storage Database - * + * ### Configuring encryption at rest using customer key management in Azure * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -10940,10 +10945,11 @@ public static CompletableFuture getEventTriggersPl
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10957,39 +10963,35 @@ public static CompletableFuture getEventTriggersPl
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
-     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
-     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
-     *                     .testS3Bucket("Amazon S3 Bucket Name")
-     *                     .build())
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .azureEnvironment("AZURE")
+     *                 .tenantId(azureTenantId)
+     *                 .subscriptionId(azureSubscriptionId)
+     *                 .clientId(azureClientId)
+     *                 .secret(azureClientSecret)
+     *                 .resourceGroupName(azureResourceGroupName)
+     *                 .keyVaultName(azureKeyVaultName)
+     *                 .keyIdentifier(azureKeyIdentifier)
      *                 .build())
      *             .build());
      * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isAzureEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.azureKeyVaultConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs args) { - return getFederatedDatabaseInstance(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.FederatedDatabaseInstance - * - * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. - * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. - * - * ## Example Usage - * - * ### S With MongoDB Atlas Cluster As Storage Database + * > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. * + * ### Configuring encryption at rest using customer key management in GCP * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -10998,8 +11000,11 @@ public static Output getFederatedDatabaseIns
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11007,25 +11012,56 @@ public static Output getFederatedDatabaseIns
      * import java.nio.file.Files;
      * import java.nio.file.Paths;
      * 
-     * public class App {
-     *     public static void main(String[] args) {
+     * public class App }{{@code
+     *     public static void main(String[] args) }{{@code
      *         Pulumi.run(App::stack);
-     *     }
+     *     }}{@code
      * 
-     *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *     public static void stack(Context ctx) }{{@code
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .serviceAccountKey("}{{@code \"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}{@literal @}{@code 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\"}}{@code ")
+     *                 .keyVersionResourceId("projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1")
+     *                 .build())
      *             .build());
      * 
-     *     }
-     * }
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isGcpEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.googleCloudKmsConfig().valid())));
+     *     }}{@code
+     * }}{@code
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### S With Amazon S3 Bucket As Storage Database + */ + public static Output getEncryptionAtRest(GetEncryptionAtRestArgs args) { + return getEncryptionAtRest(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.EncryptionAtRest + * + * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + * + * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + * + * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + * + * > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * ### S * + * ### Configuring encryption at rest using customer key management in AWS * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11034,10 +11070,19 @@ public static Output getFederatedDatabaseIns
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11051,39 +11096,60 @@ public static Output getFederatedDatabaseIns
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
-     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
-     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
-     *                     .testS3Bucket("Amazon S3 Bucket Name")
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .providerName("AWS")
+     *             .build());
+     * 
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
+     *                 .build())
+     *             .build());
+     * 
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .customerMasterKeyId(kmsKey.id())
+     *                 .region(atlasRegion)
+     *                 .roleId(authRole.roleId())
+     *                 .build())
+     *             .build());
+     * 
+     *         var cluster = new AdvancedCluster("cluster", AdvancedClusterArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .name("MyCluster")
+     *             .clusterType("REPLICASET")
+     *             .backupEnabled(true)
+     *             .encryptionAtRestProvider("AWS")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .priority(7)
+     *                     .providerName("AWS")
+     *                     .regionName("US_EAST_1")
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
      *                     .build())
      *                 .build())
      *             .build());
      * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isAwsKmsEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.awsKmsConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getFederatedDatabaseInstancePlain(GetFederatedDatabaseInstancePlainArgs args) { - return getFederatedDatabaseInstancePlain(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.FederatedDatabaseInstance - * - * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. - * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. - * - * ## Example Usage - * - * ### S With MongoDB Atlas Cluster As Storage Database - * + * ### Configuring encryption at rest using customer key management in Azure * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11092,8 +11158,11 @@ public static CompletableFuture getFederated
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11107,19 +11176,35 @@ public static CompletableFuture getFederated
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .azureEnvironment("AZURE")
+     *                 .tenantId(azureTenantId)
+     *                 .subscriptionId(azureSubscriptionId)
+     *                 .clientId(azureClientId)
+     *                 .secret(azureClientSecret)
+     *                 .resourceGroupName(azureResourceGroupName)
+     *                 .keyVaultName(azureKeyVaultName)
+     *                 .keyIdentifier(azureKeyIdentifier)
+     *                 .build())
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
      *             .build());
      * 
+     *         ctx.export("isAzureEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.azureKeyVaultConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### S With Amazon S3 Bucket As Storage Database + * > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. * + * ### Configuring encryption at rest using customer key management in GCP * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11128,10 +11213,11 @@ public static CompletableFuture getFederated
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11139,45 +11225,56 @@ public static CompletableFuture getFederated
      * import java.nio.file.Files;
      * import java.nio.file.Paths;
      * 
-     * public class App {
-     *     public static void main(String[] args) {
-     *         Pulumi.run(App::stack);
-     *     }
+     * public class App }{{@code
+     *     public static void main(String[] args) }{{@code
+     *         Pulumi.run(App::stack);
+     *     }}{@code
      * 
-     *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
-     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
-     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
-     *                     .testS3Bucket("Amazon S3 Bucket Name")
-     *                     .build())
+     *     public static void stack(Context ctx) }{{@code
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .serviceAccountKey("}{{@code \"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}{@literal @}{@code 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\"}}{@code ")
+     *                 .keyVersionResourceId("projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1")
      *                 .build())
      *             .build());
      * 
-     *     }
-     * }
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isGcpEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.googleCloudKmsConfig().valid())));
+     *     }}{@code
+     * }}{@code
      * }
      * 
* <!--End PulumiCodeChooser --> * */ - public static Output getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedDatabaseInstance:getFederatedDatabaseInstance", TypeShape.of(GetFederatedDatabaseInstanceResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getEncryptionAtRestPlain(GetEncryptionAtRestPlainArgs args) { + return getEncryptionAtRestPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.FederatedDatabaseInstance + * ## # Data Source: mongodbatlas.EncryptionAtRest * - * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source. + * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. + * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. + * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + * + * > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * * ## Example Usage * - * ### S With MongoDB Atlas Cluster As Storage Database + * ### S * + * ### Configuring encryption at rest using customer key management in AWS * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11186,8 +11283,19 @@ public static Output getFederatedDatabaseIns
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11201,19 +11309,60 @@ public static Output getFederatedDatabaseIns
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .providerName("AWS")
+     *             .build());
+     * 
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
+     *                 .build())
+     *             .build());
+     * 
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .customerMasterKeyId(kmsKey.id())
+     *                 .region(atlasRegion)
+     *                 .roleId(authRole.roleId())
+     *                 .build())
+     *             .build());
+     * 
+     *         var cluster = new AdvancedCluster("cluster", AdvancedClusterArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .name("MyCluster")
+     *             .clusterType("REPLICASET")
+     *             .backupEnabled(true)
+     *             .encryptionAtRestProvider("AWS")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .priority(7)
+     *                     .providerName("AWS")
+     *                     .regionName("US_EAST_1")
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
      *             .build());
      * 
+     *         ctx.export("isAwsKmsEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.awsKmsConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### S With Amazon S3 Bucket As Storage Database - * + * ### Configuring encryption at rest using customer key management in Azure * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11222,10 +11371,11 @@ public static Output getFederatedDatabaseIns
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11239,39 +11389,35 @@ public static Output getFederatedDatabaseIns
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
-     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
-     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
-     *                     .testS3Bucket("Amazon S3 Bucket Name")
-     *                     .build())
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .azureEnvironment("AZURE")
+     *                 .tenantId(azureTenantId)
+     *                 .subscriptionId(azureSubscriptionId)
+     *                 .clientId(azureClientId)
+     *                 .secret(azureClientSecret)
+     *                 .resourceGroupName(azureResourceGroupName)
+     *                 .keyVaultName(azureKeyVaultName)
+     *                 .keyIdentifier(azureKeyIdentifier)
      *                 .build())
      *             .build());
      * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isAzureEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.azureKeyVaultConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getFederatedDatabaseInstancePlain(GetFederatedDatabaseInstancePlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedDatabaseInstance:getFederatedDatabaseInstance", TypeShape.of(GetFederatedDatabaseInstanceResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances - * - * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. - * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. - * - * ## Example Usage - * - * ### S + * > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. * + * ### Configuring encryption at rest using customer key management in GCP * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11280,8 +11426,11 @@ public static CompletableFuture getFederated
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11289,40 +11438,56 @@ public static CompletableFuture getFederated
      * import java.nio.file.Files;
      * import java.nio.file.Paths;
      * 
-     * public class App {
-     *     public static void main(String[] args) {
+     * public class App }{{@code
+     *     public static void main(String[] args) }{{@code
      *         Pulumi.run(App::stack);
-     *     }
+     *     }}{@code
      * 
-     *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *     public static void stack(Context ctx) }{{@code
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .serviceAccountKey("}{{@code \"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}{@literal @}{@code 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\"}}{@code ")
+     *                 .keyVersionResourceId("projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1")
+     *                 .build())
      *             .build());
      * 
-     *     }
-     * }
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isGcpEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.googleCloudKmsConfig().valid())));
+     *     }}{@code
+     * }}{@code
      * }
      * 
* <!--End PulumiCodeChooser --> * */ - public static Output getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs args) { - return getFederatedDatabaseInstances(args, InvokeOptions.Empty); + public static Output getEncryptionAtRest(GetEncryptionAtRestArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", TypeShape.of(GetEncryptionAtRestResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances + * ## # Data Source: mongodbatlas.EncryptionAtRest * - * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source. + * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. + * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. + * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + * + * > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * * ## Example Usage * * ### S * + * ### Configuring encryption at rest using customer key management in AWS * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11331,8 +11496,19 @@ public static Output getFederatedData
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11346,34 +11522,60 @@ public static Output getFederatedData
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .providerName("AWS")
+     *             .build());
+     * 
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
+     *                 .build())
+     *             .build());
+     * 
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .customerMasterKeyId(kmsKey.id())
+     *                 .region(atlasRegion)
+     *                 .roleId(authRole.roleId())
+     *                 .build())
+     *             .build());
+     * 
+     *         var cluster = new AdvancedCluster("cluster", AdvancedClusterArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .name("MyCluster")
+     *             .clusterType("REPLICASET")
+     *             .backupEnabled(true)
+     *             .encryptionAtRestProvider("AWS")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .priority(7)
+     *                     .providerName("AWS")
+     *                     .regionName("US_EAST_1")
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
      *             .build());
      * 
+     *         ctx.export("isAwsKmsEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.awsKmsConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getFederatedDatabaseInstancesPlain(GetFederatedDatabaseInstancesPlainArgs args) { - return getFederatedDatabaseInstancesPlain(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances - * - * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. - * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. - * - * ## Example Usage - * - * ### S - * + * ### Configuring encryption at rest using customer key management in Azure * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11382,8 +11584,11 @@ public static CompletableFuture getFe
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11397,34 +11602,35 @@ public static CompletableFuture getFe
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .azureEnvironment("AZURE")
+     *                 .tenantId(azureTenantId)
+     *                 .subscriptionId(azureSubscriptionId)
+     *                 .clientId(azureClientId)
+     *                 .secret(azureClientSecret)
+     *                 .resourceGroupName(azureResourceGroupName)
+     *                 .keyVaultName(azureKeyVaultName)
+     *                 .keyIdentifier(azureKeyIdentifier)
+     *                 .build())
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
      *             .build());
      * 
+     *         ctx.export("isAzureEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.azureKeyVaultConfig().valid())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedDatabaseInstances:getFederatedDatabaseInstances", TypeShape.of(GetFederatedDatabaseInstancesInvokeResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances - * - * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. - * - * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state. - * - * ## Example Usage - * - * ### S + * > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. * + * ### Configuring encryption at rest using customer key management in GCP * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11433,8 +11639,11 @@ public static Output getFederatedData
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.EncryptionAtRest;
+     * import com.pulumi.mongodbatlas.EncryptionAtRestArgs;
+     * import com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11442,36 +11651,50 @@ public static Output getFederatedData
      * import java.nio.file.Files;
      * import java.nio.file.Paths;
      * 
-     * public class App {
-     *     public static void main(String[] args) {
+     * public class App }{{@code
+     *     public static void main(String[] args) }{{@code
      *         Pulumi.run(App::stack);
-     *     }
+     *     }}{@code
      * 
-     *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
-     *             .projectId("PROJECT ID")
-     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *     public static void stack(Context ctx) }{{@code
+     *         var testEncryptionAtRest = new EncryptionAtRest("testEncryptionAtRest", EncryptionAtRestArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs.builder()
+     *                 .enabled(true)
+     *                 .serviceAccountKey("}{{@code \"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}{@literal @}{@code 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\"}}{@code ")
+     *                 .keyVersionResourceId("projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1")
+     *                 .build())
      *             .build());
      * 
-     *     }
-     * }
+     *         final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()
+     *             .projectId(testEncryptionAtRest.projectId())
+     *             .build());
+     * 
+     *         ctx.export("isGcpEncryptionAtRestValid", test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult).applyValue(test -> test.applyValue(getEncryptionAtRestResult -> getEncryptionAtRestResult.googleCloudKmsConfig().valid())));
+     *     }}{@code
+     * }}{@code
      * }
      * 
* <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getFederatedDatabaseInstancesPlain(GetFederatedDatabaseInstancesPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedDatabaseInstances:getFederatedDatabaseInstances", TypeShape.of(GetFederatedDatabaseInstancesInvokeResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getEncryptionAtRestPlain(GetEncryptionAtRestPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", TypeShape.of(GetEncryptionAtRestResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.FederatedQueryLimit + * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint * - * `mongodbatlas.FederatedQueryLimit` 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/. + * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. * - * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). * * ## Example Usage * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -11481,7 +11704,7 @@ public static CompletableFuture getFe
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11495,12 +11718,13 @@ public static CompletableFuture getFe
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
-     *             .limitName("LIMIT_NAME")
+     *         final var single = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
+     *             .id(endpoint.id())
      *             .build());
      * 
+     *         ctx.export("endpointConnectionName", single.applyValue(getEncryptionAtRestPrivateEndpointResult -> getEncryptionAtRestPrivateEndpointResult.privateEndpointConnectionName()));
      *     }
      * }
      * }
@@ -11508,18 +11732,23 @@ public static CompletableFuture getFe
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedQueryLimit(GetFederatedQueryLimitArgs args) {
-        return getFederatedQueryLimit(args, InvokeOptions.Empty);
+    public static Output getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs args) {
+        return getEncryptionAtRestPrivateEndpoint(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedQueryLimit
+     * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint
      * 
-     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11529,7 +11758,7 @@ public static Output getFederatedQueryLimit(GetFed
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11543,12 +11772,13 @@ public static Output getFederatedQueryLimit(GetFed
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
-     *             .limitName("LIMIT_NAME")
+     *         final var single = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
+     *             .id(endpoint.id())
      *             .build());
      * 
+     *         ctx.export("endpointConnectionName", single.applyValue(getEncryptionAtRestPrivateEndpointResult -> getEncryptionAtRestPrivateEndpointResult.privateEndpointConnectionName()));
      *     }
      * }
      * }
@@ -11556,18 +11786,23 @@ public static Output getFederatedQueryLimit(GetFed
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedQueryLimitPlain(GetFederatedQueryLimitPlainArgs args) {
-        return getFederatedQueryLimitPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getEncryptionAtRestPrivateEndpointPlain(GetEncryptionAtRestPrivateEndpointPlainArgs args) {
+        return getEncryptionAtRestPrivateEndpointPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedQueryLimit
+     * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint
      * 
-     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11577,7 +11812,7 @@ public static CompletableFuture getFederatedQueryL
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11591,12 +11826,13 @@ public static CompletableFuture getFederatedQueryL
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
-     *             .limitName("LIMIT_NAME")
+     *         final var single = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
+     *             .id(endpoint.id())
      *             .build());
      * 
+     *         ctx.export("endpointConnectionName", single.applyValue(getEncryptionAtRestPrivateEndpointResult -> getEncryptionAtRestPrivateEndpointResult.privateEndpointConnectionName()));
      *     }
      * }
      * }
@@ -11604,18 +11840,23 @@ public static CompletableFuture getFederatedQueryL
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedQueryLimit(GetFederatedQueryLimitArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedQueryLimit:getFederatedQueryLimit", TypeShape.of(GetFederatedQueryLimitResult.class), args, Utilities.withVersion(options));
+    public static Output getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", TypeShape.of(GetEncryptionAtRestPrivateEndpointResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedQueryLimit
+     * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint
      * 
-     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11625,7 +11866,7 @@ public static Output getFederatedQueryLimit(GetFed
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11639,12 +11880,13 @@ public static Output getFederatedQueryLimit(GetFed
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
-     *             .limitName("LIMIT_NAME")
+     *         final var single = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
+     *             .id(endpoint.id())
      *             .build());
      * 
+     *         ctx.export("endpointConnectionName", single.applyValue(getEncryptionAtRestPrivateEndpointResult -> getEncryptionAtRestPrivateEndpointResult.privateEndpointConnectionName()));
      *     }
      * }
      * }
@@ -11652,20 +11894,23 @@ public static Output getFederatedQueryLimit(GetFed
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedQueryLimitPlain(GetFederatedQueryLimitPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedQueryLimit:getFederatedQueryLimit", TypeShape.of(GetFederatedQueryLimitResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getEncryptionAtRestPrivateEndpointPlain(GetEncryptionAtRestPrivateEndpointPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", TypeShape.of(GetEncryptionAtRestPrivateEndpointResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
+     * ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints
      * 
-     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
      * ### S
      * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11675,7 +11920,7 @@ public static CompletableFuture getFederatedQueryL
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11689,11 +11934,12 @@ public static CompletableFuture getFederatedQueryL
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *         final var plural = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
      *             .build());
      * 
+     *         ctx.export("numberOfEndpoints", plural.applyValue(getEncryptionAtRestPrivateEndpointsResult -> getEncryptionAtRestPrivateEndpointsResult.results()).length());
      *     }
      * }
      * }
@@ -11701,20 +11947,23 @@ public static CompletableFuture getFederatedQueryL
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedQueryLimits(GetFederatedQueryLimitsArgs args) {
-        return getFederatedQueryLimits(args, InvokeOptions.Empty);
+    public static Output getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs args) {
+        return getEncryptionAtRestPrivateEndpoints(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
+     * ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints
      * 
-     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
      * ### S
      * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11724,7 +11973,7 @@ public static Output getFederatedQueryLimit
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11738,11 +11987,12 @@ public static Output getFederatedQueryLimit
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *         final var plural = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
      *             .build());
      * 
+     *         ctx.export("numberOfEndpoints", plural.applyValue(getEncryptionAtRestPrivateEndpointsResult -> getEncryptionAtRestPrivateEndpointsResult.results()).length());
      *     }
      * }
      * }
@@ -11750,20 +12000,23 @@ public static Output getFederatedQueryLimit
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedQueryLimitsPlain(GetFederatedQueryLimitsPlainArgs args) {
-        return getFederatedQueryLimitsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getEncryptionAtRestPrivateEndpointsPlain(GetEncryptionAtRestPrivateEndpointsPlainArgs args) {
+        return getEncryptionAtRestPrivateEndpointsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
+     * ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints
      * 
-     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
      * ### S
      * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11773,7 +12026,7 @@ public static CompletableFuture getFederate
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11787,11 +12040,12 @@ public static CompletableFuture getFederate
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *         final var plural = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
      *             .build());
      * 
+     *         ctx.export("numberOfEndpoints", plural.applyValue(getEncryptionAtRestPrivateEndpointsResult -> getEncryptionAtRestPrivateEndpointsResult.results()).length());
      *     }
      * }
      * }
@@ -11799,20 +12053,23 @@ public static CompletableFuture getFederate
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedQueryLimits(GetFederatedQueryLimitsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedQueryLimits:getFederatedQueryLimits", TypeShape.of(GetFederatedQueryLimitsInvokeResult.class), args, Utilities.withVersion(options));
+    public static Output getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", TypeShape.of(GetEncryptionAtRestPrivateEndpointsInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
+     * ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints
      * 
-     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager.
+     * To 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).
      * 
      * ## Example Usage
      * 
      * ### S
      * 
+     * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11822,7 +12079,7 @@ public static Output getFederatedQueryLimit
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11836,11 +12093,12 @@ public static Output getFederatedQueryLimit
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
-     *             .projectId("PROJECT_ID")
-     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *         final var plural = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs.builder()
+     *             .projectId(atlasProjectId)
+     *             .cloudProvider("AZURE")
      *             .build());
      * 
+     *         ctx.export("numberOfEndpoints", plural.applyValue(getEncryptionAtRestPrivateEndpointsResult -> getEncryptionAtRestPrivateEndpointsResult.results()).length());
      *     }
      * }
      * }
@@ -11848,16 +12106,94 @@ public static Output getFederatedQueryLimit
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedQueryLimitsPlain(GetFederatedQueryLimitsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedQueryLimits:getFederatedQueryLimits", TypeShape.of(GetFederatedQueryLimitsInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getEncryptionAtRestPrivateEndpointsPlain(GetEncryptionAtRestPrivateEndpointsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", TypeShape.of(GetEncryptionAtRestPrivateEndpointsInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettings
+     * ## # Data Source: mongodbatlas.EventTrigger
      * 
-     * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.
+     * `mongodbatlas.EventTrigger` describes an Event Trigger.
+     * 
+     */
+    public static Output getEventTrigger(GetEventTriggerArgs args) {
+        return getEventTrigger(args, InvokeOptions.Empty);
+    }
+    /**
+     * ## # Data Source: mongodbatlas.EventTrigger
+     * 
+     * `mongodbatlas.EventTrigger` describes an Event Trigger.
+     * 
+     */
+    public static CompletableFuture getEventTriggerPlain(GetEventTriggerPlainArgs args) {
+        return getEventTriggerPlain(args, InvokeOptions.Empty);
+    }
+    /**
+     * ## # Data Source: mongodbatlas.EventTrigger
+     * 
+     * `mongodbatlas.EventTrigger` describes an Event Trigger.
+     * 
+     */
+    public static Output getEventTrigger(GetEventTriggerArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getEventTrigger:getEventTrigger", TypeShape.of(GetEventTriggerResult.class), args, Utilities.withVersion(options));
+    }
+    /**
+     * ## # Data Source: mongodbatlas.EventTrigger
+     * 
+     * `mongodbatlas.EventTrigger` describes an Event Trigger.
+     * 
+     */
+    public static CompletableFuture getEventTriggerPlain(GetEventTriggerPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEventTrigger:getEventTrigger", TypeShape.of(GetEventTriggerResult.class), args, Utilities.withVersion(options));
+    }
+    /**
+     * ## # Data Source: mongodbatlas.getEventTriggers
+     * 
+     * `mongodbatlas.getEventTriggers` describes all Event Triggers.
+     * 
+     */
+    public static Output getEventTriggers(GetEventTriggersArgs args) {
+        return getEventTriggers(args, InvokeOptions.Empty);
+    }
+    /**
+     * ## # Data Source: mongodbatlas.getEventTriggers
+     * 
+     * `mongodbatlas.getEventTriggers` describes all Event Triggers.
+     * 
+     */
+    public static CompletableFuture getEventTriggersPlain(GetEventTriggersPlainArgs args) {
+        return getEventTriggersPlain(args, InvokeOptions.Empty);
+    }
+    /**
+     * ## # Data Source: mongodbatlas.getEventTriggers
+     * 
+     * `mongodbatlas.getEventTriggers` describes all Event Triggers.
+     * 
+     */
+    public static Output getEventTriggers(GetEventTriggersArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getEventTriggers:getEventTriggers", TypeShape.of(GetEventTriggersInvokeResult.class), args, Utilities.withVersion(options));
+    }
+    /**
+     * ## # Data Source: mongodbatlas.getEventTriggers
+     * 
+     * `mongodbatlas.getEventTriggers` describes all Event Triggers.
+     * 
+     */
+    public static CompletableFuture getEventTriggersPlain(GetEventTriggersPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getEventTriggers:getEventTriggers", TypeShape.of(GetEventTriggersInvokeResult.class), args, Utilities.withVersion(options));
+    }
+    /**
+     * ## # Data Source: mongodbatlas.FederatedDatabaseInstance
+     * 
+     * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S With MongoDB Atlas Cluster As Storage Database
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11867,7 +12203,7 @@ public static CompletableFuture getFederate
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11881,8 +12217,9 @@ public static CompletableFuture getFederate
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -11891,16 +12228,7 @@ public static CompletableFuture getFederate
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFederatedSettings(GetFederatedSettingsArgs args) { - return getFederatedSettings(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.getFederatedSettings - * - * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs. - * - * ## Example Usage + * ### S With Amazon S3 Bucket As Storage Database * * <!--Start PulumiCodeChooser --> *
@@ -11911,7 +12239,9 @@ public static Output getFederatedSettings(GetFederat
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11925,8 +12255,14 @@ public static Output getFederatedSettings(GetFederat
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
+     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
+     *                     .testS3Bucket("Amazon S3 Bucket Name")
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -11936,16 +12272,22 @@ public static Output getFederatedSettings(GetFederat
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsPlain(GetFederatedSettingsPlainArgs args) {
-        return getFederatedSettingsPlain(args, InvokeOptions.Empty);
+    public static Output getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs args) {
+        return getFederatedDatabaseInstance(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettings
+     * ## # Data Source: mongodbatlas.FederatedDatabaseInstance
      * 
-     * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.
+     * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S With MongoDB Atlas Cluster As Storage Database
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11955,7 +12297,7 @@ public static CompletableFuture getFederatedSettings
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11969,8 +12311,9 @@ public static CompletableFuture getFederatedSettings
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -11979,16 +12322,7 @@ public static CompletableFuture getFederatedSettings
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFederatedSettings(GetFederatedSettingsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettings:getFederatedSettings", TypeShape.of(GetFederatedSettingsResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.getFederatedSettings - * - * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs. - * - * ## Example Usage + * ### S With Amazon S3 Bucket As Storage Database * * <!--Start PulumiCodeChooser --> *
@@ -11999,7 +12333,9 @@ public static Output getFederatedSettings(GetFederat
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12013,8 +12349,14 @@ public static Output getFederatedSettings(GetFederat
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
+     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
+     *                     .testS3Bucket("Amazon S3 Bucket Name")
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -12024,16 +12366,22 @@ public static Output getFederatedSettings(GetFederat
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsPlain(GetFederatedSettingsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettings:getFederatedSettings", TypeShape.of(GetFederatedSettingsResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getFederatedDatabaseInstancePlain(GetFederatedDatabaseInstancePlainArgs args) {
+        return getFederatedDatabaseInstancePlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider
+     * ## # Data Source: mongodbatlas.FederatedDatabaseInstance
      * 
-     * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider.
+     * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S With MongoDB Atlas Cluster As Storage Database
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12042,10 +12390,8 @@ public static CompletableFuture getFederatedSettings
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12059,21 +12405,9 @@ public static CompletableFuture getFederatedSettings
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
-     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
-     *             .requestBinding("HTTP-POST")
-     *             .responseSignatureAlgorithm("SHA-256")
-     *             .build());
-     * 
-     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -12082,16 +12416,7 @@ public static CompletableFuture getFederatedSettings
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs args) { - return getFederatedSettingsIdentityProvider(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider - * - * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider. - * - * ## Example Usage + * ### S With Amazon S3 Bucket As Storage Database * * <!--Start PulumiCodeChooser --> *
@@ -12101,10 +12426,10 @@ public static Output getFederatedSet
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12118,21 +12443,14 @@ public static Output getFederatedSet
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
-     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
-     *             .requestBinding("HTTP-POST")
-     *             .responseSignatureAlgorithm("SHA-256")
-     *             .build());
-     * 
-     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
+     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
+     *                     .testS3Bucket("Amazon S3 Bucket Name")
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -12142,16 +12460,22 @@ public static Output getFederatedSet
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsIdentityProviderPlain(GetFederatedSettingsIdentityProviderPlainArgs args) {
-        return getFederatedSettingsIdentityProviderPlain(args, InvokeOptions.Empty);
+    public static Output getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedDatabaseInstance:getFederatedDatabaseInstance", TypeShape.of(GetFederatedDatabaseInstanceResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider
+     * ## # Data Source: mongodbatlas.FederatedDatabaseInstance
      * 
-     * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider.
+     * `mongodbatlas.FederatedDatabaseInstance` provides a Federated Database Instance data source.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S With MongoDB Atlas Cluster As Storage Database
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12160,10 +12484,8 @@ public static CompletableFuture getF
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12177,21 +12499,9 @@ public static CompletableFuture getF
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
-     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
-     *             .requestBinding("HTTP-POST")
-     *             .responseSignatureAlgorithm("SHA-256")
-     *             .build());
-     * 
-     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -12200,16 +12510,7 @@ public static CompletableFuture getF
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsIdentityProvider:getFederatedSettingsIdentityProvider", TypeShape.of(GetFederatedSettingsIdentityProviderResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider - * - * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider. - * - * ## Example Usage + * ### S With Amazon S3 Bucket As Storage Database * * <!--Start PulumiCodeChooser --> *
@@ -12219,10 +12520,10 @@ public static Output getFederatedSet
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12236,21 +12537,14 @@ public static Output getFederatedSet
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
-     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
-     *             .requestBinding("HTTP-POST")
-     *             .responseSignatureAlgorithm("SHA-256")
-     *             .build());
-     * 
-     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
+     *             .cloudProviderConfig(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()
+     *                 .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()
+     *                     .testS3Bucket("Amazon S3 Bucket Name")
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -12260,18 +12554,22 @@ public static Output getFederatedSet
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsIdentityProviderPlain(GetFederatedSettingsIdentityProviderPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsIdentityProvider:getFederatedSettingsIdentityProvider", TypeShape.of(GetFederatedSettingsIdentityProviderResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getFederatedDatabaseInstancePlain(GetFederatedDatabaseInstancePlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedDatabaseInstance:getFederatedDatabaseInstance", TypeShape.of(GetFederatedDatabaseInstanceResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders
+     * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances
      * 
-     * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source.
      * 
-     * Note: This implementation returns a maximum of 100 results.
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12280,10 +12578,8 @@ public static CompletableFuture getF
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12297,18 +12593,9 @@ public static CompletableFuture getF
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .build());
-     * 
-     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -12318,18 +12605,22 @@ public static CompletableFuture getF
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs args) {
-        return getFederatedSettingsIdentityProviders(args, InvokeOptions.Empty);
+    public static Output getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs args) {
+        return getFederatedDatabaseInstances(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders
+     * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances
      * 
-     * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source.
      * 
-     * Note: This implementation returns a maximum of 100 results.
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12338,10 +12629,8 @@ public static Output getFeder
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12355,18 +12644,9 @@ public static Output getFeder
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .build());
-     * 
-     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -12376,18 +12656,22 @@ public static Output getFeder
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsIdentityProvidersPlain(GetFederatedSettingsIdentityProvidersPlainArgs args) {
-        return getFederatedSettingsIdentityProvidersPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getFederatedDatabaseInstancesPlain(GetFederatedDatabaseInstancesPlainArgs args) {
+        return getFederatedDatabaseInstancesPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders
+     * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances
      * 
-     * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source.
      * 
-     * Note: This implementation returns a maximum of 100 results.
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12396,10 +12680,8 @@ public static CompletableFuture getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsIdentityProviders:getFederatedSettingsIdentityProviders", TypeShape.of(GetFederatedSettingsIdentityProvidersInvokeResult.class), args, Utilities.withVersion(options));
+    public static Output getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedDatabaseInstances:getFederatedDatabaseInstances", TypeShape.of(GetFederatedDatabaseInstancesInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders
+     * ## # Data Source: mongodbatlas.getFederatedDatabaseInstances
      * 
-     * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas_federated_database_instancess` provides a Federated Database Instance data source.
      * 
-     * Note: This implementation returns a maximum of 100 results.
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
+     * 
+     * > **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12454,10 +12731,8 @@ public static Output getFeder
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
-     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstancesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12471,18 +12746,9 @@ public static Output getFeder
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f")
-     *             .name("mongodb_federation_test")
-     *             .associatedDomains("yourdomain.com")
-     *             .ssoDebugEnabled(true)
-     *             .status("ACTIVE")
-     *             .build());
-     * 
-     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
-     *             .federationSettingsId(identityProvider.id())
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
+     *         final var test = MongodbatlasFunctions.getFederatedDatabaseInstances(GetFederatedDatabaseInstancesArgs.builder()
+     *             .projectId("PROJECT ID")
+     *             .name("TENANT NAME OF THE FEDERATED DATABASE INSTANCE")
      *             .build());
      * 
      *     }
@@ -12492,13 +12758,15 @@ public static Output getFeder
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsIdentityProvidersPlain(GetFederatedSettingsIdentityProvidersPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsIdentityProviders:getFederatedSettingsIdentityProviders", TypeShape.of(GetFederatedSettingsIdentityProvidersInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getFederatedDatabaseInstancesPlain(GetFederatedDatabaseInstancesPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedDatabaseInstances:getFederatedDatabaseInstances", TypeShape.of(GetFederatedDatabaseInstancesInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig
+     * ## # Data Source: mongodbatlas.FederatedQueryLimit
      * 
-     * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration.
+     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
@@ -12510,10 +12778,8 @@ public static CompletableFuture getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs args) {
-        return getFederatedSettingsOrgConfig(args, InvokeOptions.Empty);
+    public static Output getFederatedQueryLimit(GetFederatedQueryLimitArgs args) {
+        return getFederatedQueryLimit(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig
+     * ## # Data Source: mongodbatlas.FederatedQueryLimit
      * 
-     * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration.
+     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
@@ -12567,10 +12826,8 @@ public static Output getFederatedSettingsOr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12584,19 +12841,10 @@ public static Output getFederatedSettingsOr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
-     *             .orgId("627a9683ea7ff7f74de306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *             .limitName("LIMIT_NAME")
      *             .build());
      * 
      *     }
@@ -12606,13 +12854,15 @@ public static Output getFederatedSettingsOr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsOrgConfigPlain(GetFederatedSettingsOrgConfigPlainArgs args) {
-        return getFederatedSettingsOrgConfigPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getFederatedQueryLimitPlain(GetFederatedQueryLimitPlainArgs args) {
+        return getFederatedQueryLimitPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig
+     * ## # Data Source: mongodbatlas.FederatedQueryLimit
      * 
-     * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration.
+     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
@@ -12624,10 +12874,8 @@ public static CompletableFuture getFederate
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12641,19 +12889,10 @@ public static CompletableFuture getFederate
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
-     *             .orgId("627a9683ea7ff7f74de306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *             .limitName("LIMIT_NAME")
      *             .build());
      * 
      *     }
@@ -12663,13 +12902,15 @@ public static CompletableFuture getFederate
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgConfig:getFederatedSettingsOrgConfig", TypeShape.of(GetFederatedSettingsOrgConfigResult.class), args, Utilities.withVersion(options));
+    public static Output getFederatedQueryLimit(GetFederatedQueryLimitArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedQueryLimit:getFederatedQueryLimit", TypeShape.of(GetFederatedQueryLimitResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig
+     * ## # Data Source: mongodbatlas.FederatedQueryLimit
      * 
-     * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration.
+     * `mongodbatlas.FederatedQueryLimit` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
@@ -12681,10 +12922,8 @@ public static Output getFederatedSettingsOr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12698,19 +12937,10 @@ public static Output getFederatedSettingsOr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
-     *             .orgId("627a9683ea7ff7f74de306f14")
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
+     *             .limitName("LIMIT_NAME")
      *             .build());
      * 
      *     }
@@ -12720,16 +12950,20 @@ public static Output getFederatedSettingsOr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsOrgConfigPlain(GetFederatedSettingsOrgConfigPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsOrgConfig:getFederatedSettingsOrgConfig", TypeShape.of(GetFederatedSettingsOrgConfigResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getFederatedQueryLimitPlain(GetFederatedQueryLimitPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedQueryLimit:getFederatedQueryLimit", TypeShape.of(GetFederatedQueryLimitResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs
+     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
      * 
-     * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12738,10 +12972,8 @@ public static CompletableFuture getFederate
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12755,18 +12987,9 @@ public static CompletableFuture getFederate
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
      *             .build());
      * 
      *     }
@@ -12776,16 +12999,20 @@ public static CompletableFuture getFederate
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs args) {
-        return getFederatedSettingsOrgConfigs(args, InvokeOptions.Empty);
+    public static Output getFederatedQueryLimits(GetFederatedQueryLimitsArgs args) {
+        return getFederatedQueryLimits(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs
+     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
      * 
-     * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12794,10 +13021,8 @@ public static Output getFederatedSet
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12811,18 +13036,9 @@ public static Output getFederatedSet
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
      *             .build());
      * 
      *     }
@@ -12832,16 +13048,20 @@ public static Output getFederatedSet
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsOrgConfigsPlain(GetFederatedSettingsOrgConfigsPlainArgs args) {
-        return getFederatedSettingsOrgConfigsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getFederatedQueryLimitsPlain(GetFederatedQueryLimitsPlainArgs args) {
+        return getFederatedQueryLimitsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs
+     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
      * 
-     * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12850,10 +13070,8 @@ public static CompletableFuture getF
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12867,18 +13085,9 @@ public static CompletableFuture getF
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
      *             .build());
      * 
      *     }
@@ -12888,16 +13097,20 @@ public static CompletableFuture getF
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgConfigs:getFederatedSettingsOrgConfigs", TypeShape.of(GetFederatedSettingsOrgConfigsInvokeResult.class), args, Utilities.withVersion(options));
+    public static Output getFederatedQueryLimits(GetFederatedQueryLimitsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedQueryLimits:getFederatedQueryLimits", TypeShape.of(GetFederatedQueryLimitsInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs
+     * ## # Data Source: mongodbatlas.getFederatedQueryLimits
      * 
-     * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.
+     * `mongodbatlas.getFederatedQueryLimits` 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/.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
      * ## Example Usage
      * 
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12906,10 +13119,8 @@ public static Output getFederatedSet
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12923,18 +13134,9 @@ public static Output getFederatedSet
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
-     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
-     *             .orgId("627a9683ea7ff7f74de306f14")
-     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
-     *             .domainRestrictionEnabled(false)
-     *             .domainAllowLists("mydomain.com")
-     *             .postAuthRoleGrants("ORG_MEMBER")
-     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
-     *             .build());
-     * 
-     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
-     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *         final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()
+     *             .projectId("PROJECT_ID")
+     *             .tenantName("FEDERATED_DATABASE_INSTANCE_NAME")
      *             .build());
      * 
      *     }
@@ -12944,13 +13146,13 @@ public static Output getFederatedSet
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsOrgConfigsPlain(GetFederatedSettingsOrgConfigsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsOrgConfigs:getFederatedSettingsOrgConfigs", TypeShape.of(GetFederatedSettingsOrgConfigsInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getFederatedQueryLimitsPlain(GetFederatedQueryLimitsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedQueryLimits:getFederatedQueryLimits", TypeShape.of(GetFederatedQueryLimitsInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping
+     * ## # Data Source: mongodbatlas.getFederatedSettings
      * 
-     * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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.
+     * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.
      * 
      * ## Example Usage
      * 
@@ -12962,11 +13164,8 @@ public static CompletableFuture getF
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
-     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12980,41 +13179,8 @@ public static CompletableFuture getF
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(federatedSettings.id())
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .externalGroupName("myGrouptest")
-     *             .roleAssignments(            
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .orgId("627a9683e7f7f7ff7fe306f14")
-     *                     .roles(                    
-     *                         "ORG_MEMBER",
-     *                         "ORG_GROUP_CREATOR",
-     *                         "ORG_BILLING_ADMIN")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("628aa20db7f7f7f98b81b8")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("62b477f7f7f7f5e741489c")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .build());
-     * 
-     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
      *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
      *             .build());
      * 
      *     }
@@ -13024,13 +13190,13 @@ public static CompletableFuture getF
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs args) {
-        return getFederatedSettingsOrgRoleMapping(args, InvokeOptions.Empty);
+    public static Output getFederatedSettings(GetFederatedSettingsArgs args) {
+        return getFederatedSettings(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping
+     * ## # Data Source: mongodbatlas.getFederatedSettings
      * 
-     * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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.
+     * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.
      * 
      * ## Example Usage
      * 
@@ -13042,11 +13208,8 @@ public static Output getFederatedSetti
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
-     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -13060,41 +13223,8 @@ public static Output getFederatedSetti
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(federatedSettings.id())
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .externalGroupName("myGrouptest")
-     *             .roleAssignments(            
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .orgId("627a9683e7f7f7ff7fe306f14")
-     *                     .roles(                    
-     *                         "ORG_MEMBER",
-     *                         "ORG_GROUP_CREATOR",
-     *                         "ORG_BILLING_ADMIN")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("628aa20db7f7f7f98b81b8")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("62b477f7f7f7f5e741489c")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .build());
-     * 
-     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
      *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
      *             .build());
      * 
      *     }
@@ -13104,13 +13234,13 @@ public static Output getFederatedSetti
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsOrgRoleMappingPlain(GetFederatedSettingsOrgRoleMappingPlainArgs args) {
-        return getFederatedSettingsOrgRoleMappingPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getFederatedSettingsPlain(GetFederatedSettingsPlainArgs args) {
+        return getFederatedSettingsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping
+     * ## # Data Source: mongodbatlas.getFederatedSettings
      * 
-     * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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.
+     * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.
      * 
      * ## Example Usage
      * 
@@ -13122,11 +13252,8 @@ public static CompletableFuture getFed
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
-     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -13140,41 +13267,8 @@ public static CompletableFuture getFed
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(federatedSettings.id())
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .externalGroupName("myGrouptest")
-     *             .roleAssignments(            
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .orgId("627a9683e7f7f7ff7fe306f14")
-     *                     .roles(                    
-     *                         "ORG_MEMBER",
-     *                         "ORG_GROUP_CREATOR",
-     *                         "ORG_BILLING_ADMIN")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("628aa20db7f7f7f98b81b8")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("62b477f7f7f7f5e741489c")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .build());
-     * 
-     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
      *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
      *             .build());
      * 
      *     }
@@ -13184,13 +13278,13 @@ public static CompletableFuture getFed
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgRoleMapping:getFederatedSettingsOrgRoleMapping", TypeShape.of(GetFederatedSettingsOrgRoleMappingResult.class), args, Utilities.withVersion(options));
+    public static Output getFederatedSettings(GetFederatedSettingsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettings:getFederatedSettings", TypeShape.of(GetFederatedSettingsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping
+     * ## # Data Source: mongodbatlas.getFederatedSettings
      * 
-     * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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.
+     * `mongodbatlas.getFederatedSettings` provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.
      * 
      * ## Example Usage
      * 
@@ -13202,11 +13296,8 @@ public static Output getFederatedSetti
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
-     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
-     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -13220,41 +13311,8 @@ public static Output getFederatedSetti
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(federatedSettings.id())
-     *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .externalGroupName("myGrouptest")
-     *             .roleAssignments(            
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .orgId("627a9683e7f7f7ff7fe306f14")
-     *                     .roles(                    
-     *                         "ORG_MEMBER",
-     *                         "ORG_GROUP_CREATOR",
-     *                         "ORG_BILLING_ADMIN")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("628aa20db7f7f7f98b81b8")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY")
-     *                     .build(),
-     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
-     *                     .groupId("62b477f7f7f7f5e741489c")
-     *                     .roles(                    
-     *                         "GROUP_OWNER",
-     *                         "GROUP_DATA_ACCESS_ADMIN",
-     *                         "GROUP_SEARCH_INDEX_EDITOR",
-     *                         "GROUP_DATA_ACCESS_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .build());
-     * 
-     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
-     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *         final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()
      *             .orgId("627a9683e7f7f7ff7fe306f14")
-     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
      *             .build());
      * 
      *     }
@@ -13264,48 +13322,1288 @@ public static Output getFederatedSetti
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFederatedSettingsOrgRoleMappingPlain(GetFederatedSettingsOrgRoleMappingPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsOrgRoleMapping:getFederatedSettingsOrgRoleMapping", TypeShape.of(GetFederatedSettingsOrgRoleMappingResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getFederatedSettingsPlain(GetFederatedSettingsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettings:getFederatedSettings", TypeShape.of(GetFederatedSettingsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsOrgRoleMappings
+     * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider
      * 
-     * `mongodbatlas.getFederatedSettingsOrgRoleMappings` 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.
+     * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider.
      * 
      * ## Example Usage
      * 
      * <!--Start PulumiCodeChooser -->
-     * <!--End PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
      * 
-     */
-    public static Output getFederatedSettingsOrgRoleMappings(GetFederatedSettingsOrgRoleMappingsArgs args) {
-        return getFederatedSettingsOrgRoleMappings(args, InvokeOptions.Empty);
-    }
-    /**
-     * ## # Data Source: mongodbatlas.getFederatedSettingsOrgRoleMappings
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
      * 
-     * `mongodbatlas.getFederatedSettingsOrgRoleMappings` 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.
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
      * 
-     * ## Example Usage
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
+     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
+     *             .requestBinding("HTTP-POST")
+     *             .responseSignatureAlgorithm("SHA-256")
+     *             .build());
      * 
-     * <!--Start PulumiCodeChooser -->
+     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
* <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getFederatedSettingsOrgRoleMappingsPlain(GetFederatedSettingsOrgRoleMappingsPlainArgs args) { - return getFederatedSettingsOrgRoleMappingsPlain(args, InvokeOptions.Empty); + public static Output getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs args) { + return getFederatedSettingsIdentityProvider(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getFederatedSettingsOrgRoleMappings + * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider * - * `mongodbatlas.getFederatedSettingsOrgRoleMappings` 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. + * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider. * * ## Example Usage * * <!--Start PulumiCodeChooser --> - * <!--End PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
      * 
-     */
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
+     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
+     *             .requestBinding("HTTP-POST")
+     *             .responseSignatureAlgorithm("SHA-256")
+     *             .build());
+     * 
+     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsIdentityProviderPlain(GetFederatedSettingsIdentityProviderPlainArgs args) { + return getFederatedSettingsIdentityProviderPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider + * + * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
+     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
+     *             .requestBinding("HTTP-POST")
+     *             .responseSignatureAlgorithm("SHA-256")
+     *             .build());
+     * 
+     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsIdentityProvider:getFederatedSettingsIdentityProvider", TypeShape.of(GetFederatedSettingsIdentityProviderResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsIdentityProvider + * + * `mongodbatlas.FederatedSettingsIdentityProvider` provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .ssoUrl("https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml")
+     *             .issuerUri("http://www.okta.com/exk17f7f7f7f7p50h8")
+     *             .requestBinding("HTTP-POST")
+     *             .responseSignatureAlgorithm("SHA-256")
+     *             .build());
+     * 
+     *         final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .identityProviderId("0oad4fas87jL5Xnk12971234")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsIdentityProviderPlain(GetFederatedSettingsIdentityProviderPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsIdentityProvider:getFederatedSettingsIdentityProvider", TypeShape.of(GetFederatedSettingsIdentityProviderResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders + * + * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * Note: This implementation returns a maximum of 100 results. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .build());
+     * 
+     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs args) { + return getFederatedSettingsIdentityProviders(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders + * + * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * Note: This implementation returns a maximum of 100 results. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .build());
+     * 
+     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsIdentityProvidersPlain(GetFederatedSettingsIdentityProvidersPlainArgs args) { + return getFederatedSettingsIdentityProvidersPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders + * + * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * Note: This implementation returns a maximum of 100 results. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .build());
+     * 
+     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsIdentityProviders:getFederatedSettingsIdentityProviders", TypeShape.of(GetFederatedSettingsIdentityProvidersInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsIdentityProviders + * + * `mongodbatlas.getFederatedSettingsIdentityProviders` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * Note: This implementation returns a maximum of 100 results. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;
+     * import com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProvidersArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var identityProvider = new FederatedSettingsIdentityProvider("identityProvider", FederatedSettingsIdentityProviderArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f")
+     *             .name("mongodb_federation_test")
+     *             .associatedDomains("yourdomain.com")
+     *             .ssoDebugEnabled(true)
+     *             .status("ACTIVE")
+     *             .build());
+     * 
+     *         final var identittyProvider = MongodbatlasFunctions.getFederatedSettingsIdentityProviders(GetFederatedSettingsIdentityProvidersArgs.builder()
+     *             .federationSettingsId(identityProvider.id())
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsIdentityProvidersPlain(GetFederatedSettingsIdentityProvidersPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsIdentityProviders:getFederatedSettingsIdentityProviders", TypeShape.of(GetFederatedSettingsIdentityProvidersInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig + * + * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs args) { + return getFederatedSettingsOrgConfig(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig + * + * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgConfigPlain(GetFederatedSettingsOrgConfigPlainArgs args) { + return getFederatedSettingsOrgConfigPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig + * + * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgConfig:getFederatedSettingsOrgConfig", TypeShape.of(GetFederatedSettingsOrgConfigResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgConfig + * + * `mongodbatlas.FederatedSettingsOrgConfig` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgConfigPlain(GetFederatedSettingsOrgConfigPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsOrgConfig:getFederatedSettingsOrgConfig", TypeShape.of(GetFederatedSettingsOrgConfigResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs + * + * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs args) { + return getFederatedSettingsOrgConfigs(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs + * + * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgConfigsPlain(GetFederatedSettingsOrgConfigsPlainArgs args) { + return getFederatedSettingsOrgConfigsPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs + * + * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgConfigs:getFederatedSettingsOrgConfigs", TypeShape.of(GetFederatedSettingsOrgConfigsInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgConfigs + * + * `mongodbatlas.getFederatedSettingsOrgConfigs` provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgConnection = new FederatedSettingsOrgConfig("orgConnection", FederatedSettingsOrgConfigArgs.builder()
+     *             .federationSettingsId("627a9687f7f7f7f774de306f14")
+     *             .orgId("627a9683ea7ff7f74de306f14")
+     *             .dataAccessIdentityProviderIds("64d613677e1ad50839cce4db")
+     *             .domainRestrictionEnabled(false)
+     *             .domainAllowLists("mydomain.com")
+     *             .postAuthRoleGrants("ORG_MEMBER")
+     *             .identityProviderId("0oaqyt9fc2ySTWnA0357")
+     *             .build());
+     * 
+     *         final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()
+     *             .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgConfigsPlain(GetFederatedSettingsOrgConfigsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsOrgConfigs:getFederatedSettingsOrgConfigs", TypeShape.of(GetFederatedSettingsOrgConfigsInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping + * + * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(federatedSettings.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .externalGroupName("myGrouptest")
+     *             .roleAssignments(            
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .orgId("627a9683e7f7f7ff7fe306f14")
+     *                     .roles(                    
+     *                         "ORG_MEMBER",
+     *                         "ORG_GROUP_CREATOR",
+     *                         "ORG_BILLING_ADMIN")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("628aa20db7f7f7f98b81b8")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("62b477f7f7f7f5e741489c")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .build());
+     * 
+     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs args) { + return getFederatedSettingsOrgRoleMapping(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping + * + * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(federatedSettings.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .externalGroupName("myGrouptest")
+     *             .roleAssignments(            
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .orgId("627a9683e7f7f7ff7fe306f14")
+     *                     .roles(                    
+     *                         "ORG_MEMBER",
+     *                         "ORG_GROUP_CREATOR",
+     *                         "ORG_BILLING_ADMIN")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("628aa20db7f7f7f98b81b8")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("62b477f7f7f7f5e741489c")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .build());
+     * 
+     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgRoleMappingPlain(GetFederatedSettingsOrgRoleMappingPlainArgs args) { + return getFederatedSettingsOrgRoleMappingPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping + * + * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(federatedSettings.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .externalGroupName("myGrouptest")
+     *             .roleAssignments(            
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .orgId("627a9683e7f7f7ff7fe306f14")
+     *                     .roles(                    
+     *                         "ORG_MEMBER",
+     *                         "ORG_GROUP_CREATOR",
+     *                         "ORG_BILLING_ADMIN")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("628aa20db7f7f7f98b81b8")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("62b477f7f7f7f5e741489c")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .build());
+     * 
+     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgRoleMapping:getFederatedSettingsOrgRoleMapping", TypeShape.of(GetFederatedSettingsOrgRoleMappingResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.FederatedSettingsOrgRoleMapping + * + * `mongodbatlas.FederatedSettingsOrgRoleMapping` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;
+     * import com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;
+     * import com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping("orgGroupRoleMappingImport", FederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(federatedSettings.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .externalGroupName("myGrouptest")
+     *             .roleAssignments(            
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .orgId("627a9683e7f7f7ff7fe306f14")
+     *                     .roles(                    
+     *                         "ORG_MEMBER",
+     *                         "ORG_GROUP_CREATOR",
+     *                         "ORG_BILLING_ADMIN")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("628aa20db7f7f7f98b81b8")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY")
+     *                     .build(),
+     *                 FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()
+     *                     .groupId("62b477f7f7f7f5e741489c")
+     *                     .roles(                    
+     *                         "GROUP_OWNER",
+     *                         "GROUP_DATA_ACCESS_ADMIN",
+     *                         "GROUP_SEARCH_INDEX_EDITOR",
+     *                         "GROUP_DATA_ACCESS_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .build());
+     * 
+     *         final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()
+     *             .federationSettingsId(orgGroupRoleMappingImport.id())
+     *             .orgId("627a9683e7f7f7ff7fe306f14")
+     *             .roleMappingId("627a9673e7f7f7ff7fe306f14")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgRoleMappingPlain(GetFederatedSettingsOrgRoleMappingPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getFederatedSettingsOrgRoleMapping:getFederatedSettingsOrgRoleMapping", TypeShape.of(GetFederatedSettingsOrgRoleMappingResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgRoleMappings + * + * `mongodbatlas.getFederatedSettingsOrgRoleMappings` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * <!--End PulumiCodeChooser --> + * + */ + public static Output getFederatedSettingsOrgRoleMappings(GetFederatedSettingsOrgRoleMappingsArgs args) { + return getFederatedSettingsOrgRoleMappings(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgRoleMappings + * + * `mongodbatlas.getFederatedSettingsOrgRoleMappings` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getFederatedSettingsOrgRoleMappingsPlain(GetFederatedSettingsOrgRoleMappingsPlainArgs args) { + return getFederatedSettingsOrgRoleMappingsPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getFederatedSettingsOrgRoleMappings + * + * `mongodbatlas.getFederatedSettingsOrgRoleMappings` 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. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * <!--End PulumiCodeChooser --> + * + */ public static Output getFederatedSettingsOrgRoleMappings(GetFederatedSettingsOrgRoleMappingsArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("mongodbatlas:index/getFederatedSettingsOrgRoleMappings:getFederatedSettingsOrgRoleMappings", TypeShape.of(GetFederatedSettingsOrgRoleMappingsInvokeResult.class), args, Utilities.withVersion(options)); } @@ -17850,17 +19148,286 @@ public static CompletableFuture + * <!--End PulumiCodeChooser --> + * + */ + public static Output getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs args) { + return getPrivatelinkEndpointServiceDataFederationOnlineArchives(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives + * + * `mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives` describes Private Endpoint Service resources for Data Federation and Online Archive. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var atlas_project = new Project("atlas-project", ProjectArgs.builder()
+     *             .orgId(atlasOrgId)
+     *             .name(atlasProjectName)
+     *             .build());
+     * 
+     *         var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive("test", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()
+     *             .projectId(atlas_project.id())
+     *             .endpointId("vpce-046cf43c79424d4c9")
+     *             .providerName("AWS")
+     *             .comment("Test")
+     *             .region("US_EAST_1")
+     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
+     *             .build());
+     * 
+     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
+     *             .projectId(atlas_project.id())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getPrivatelinkEndpointServiceDataFederationOnlineArchivesPlain(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesPlainArgs args) { + return getPrivatelinkEndpointServiceDataFederationOnlineArchivesPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives + * + * `mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives` describes Private Endpoint Service resources for Data Federation and Online Archive. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var atlas_project = new Project("atlas-project", ProjectArgs.builder()
+     *             .orgId(atlasOrgId)
+     *             .name(atlasProjectName)
+     *             .build());
+     * 
+     *         var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive("test", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()
+     *             .projectId(atlas_project.id())
+     *             .endpointId("vpce-046cf43c79424d4c9")
+     *             .providerName("AWS")
+     *             .comment("Test")
+     *             .region("US_EAST_1")
+     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
+     *             .build());
+     * 
+     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
+     *             .projectId(atlas_project.id())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchives:getPrivatelinkEndpointServiceDataFederationOnlineArchives", TypeShape.of(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives + * + * `mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives` describes Private Endpoint Service resources for Data Federation and Online Archive. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var atlas_project = new Project("atlas-project", ProjectArgs.builder()
+     *             .orgId(atlasOrgId)
+     *             .name(atlasProjectName)
+     *             .build());
+     * 
+     *         var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive("test", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()
+     *             .projectId(atlas_project.id())
+     *             .endpointId("vpce-046cf43c79424d4c9")
+     *             .providerName("AWS")
+     *             .comment("Test")
+     *             .region("US_EAST_1")
+     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
+     *             .build());
+     * 
+     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
+     *             .projectId(atlas_project.id())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getPrivatelinkEndpointServiceDataFederationOnlineArchivesPlain(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchives:getPrivatelinkEndpointServiceDataFederationOnlineArchives", TypeShape.of(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: privatelink_endpoint_service_serverless + * + * `privatelink_endpoint_service_serverless` provides a Serverless PrivateLink Endpoint Service resource. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. + * + * ## Example with AWS + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ServerlessInstance;
+     * import com.pulumi.mongodbatlas.ServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceServerlessArgs;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless;
+     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var testServerlessInstance = new ServerlessInstance("testServerlessInstance", ServerlessInstanceArgs.builder()
+     *             .projectId("")
+     *             .name("test-db")
+     *             .providerSettingsBackingProviderName("AWS")
+     *             .providerSettingsProviderName("SERVERLESS")
+     *             .providerSettingsRegionName("US_EAST_1")
+     *             .continuousBackupEnabled(true)
+     *             .build());
+     * 
+     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
      *             .providerName("AWS")
-     *             .comment("Test")
-     *             .region("US_EAST_1")
-     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
      *             .build());
      * 
-     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
-     *             .projectId(atlas_project.id())
+     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .build());
+     * 
+     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName("test-db")
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .providerName("AWS")
+     *             .comment("New serverless endpoint")
      *             .build());
      * 
      *     }
@@ -17869,18 +19436,7 @@ public static CompletableFuture
      * <!--End PulumiCodeChooser -->
      * 
-     */
-    public static Output getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs args) {
-        return getPrivatelinkEndpointServiceDataFederationOnlineArchives(args, InvokeOptions.Empty);
-    }
-    /**
-     * ## # Data Source: mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives
-     * 
-     * `mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives` describes Private Endpoint Service resources for Data Federation and Online Archive.
-     * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
-     * 
-     * ## Example Usage
+     * ## Example with AZURE
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -17890,12 +19446,14 @@ public static Output")
+     *             .name("test-db")
+     *             .providerSettingsBackingProviderName("AZURE")
+     *             .providerSettingsProviderName("SERVERLESS")
+     *             .providerSettingsRegionName("US_EAST")
+     *             .continuousBackupEnabled(true)
      *             .build());
      * 
-     *         var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive("test", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()
-     *             .projectId(atlas_project.id())
-     *             .endpointId("vpce-046cf43c79424d4c9")
-     *             .providerName("AWS")
-     *             .comment("Test")
-     *             .region("US_EAST_1")
-     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
+     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
+     *             .providerName("AZURE")
      *             .build());
      * 
-     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
-     *             .projectId(atlas_project.id())
+     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .build());
+     * 
+     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName("test-db")
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .providerName("AZURE")
+     *             .comment("New serverless endpoint")
      *             .build());
      * 
      *     }
@@ -17933,18 +19502,21 @@ public static Output
      * <!--End PulumiCodeChooser -->
      * 
+     * ### Available complete examples
+     * - Setup private connection to a MongoDB Atlas Serverless Instance with AWS VPC
+     * 
      */
-    public static CompletableFuture getPrivatelinkEndpointServiceDataFederationOnlineArchivesPlain(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesPlainArgs args) {
-        return getPrivatelinkEndpointServiceDataFederationOnlineArchivesPlain(args, InvokeOptions.Empty);
+    public static Output getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs args) {
+        return getPrivatelinkEndpointServiceServerless(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives
+     * ## # Data Source: privatelink_endpoint_service_serverless
      * 
-     * `mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives` describes Private Endpoint Service resources for Data Federation and Online Archive.
+     * `privatelink_endpoint_service_serverless` provides a Serverless PrivateLink Endpoint Service resource.
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
-     * ## Example Usage
+     * ## Example with AWS
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -17954,12 +19526,14 @@ public static CompletableFuture")
+     *             .name("test-db")
+     *             .providerSettingsBackingProviderName("AWS")
+     *             .providerSettingsProviderName("SERVERLESS")
+     *             .providerSettingsRegionName("US_EAST_1")
+     *             .continuousBackupEnabled(true)
      *             .build());
      * 
-     *         var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive("test", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()
-     *             .projectId(atlas_project.id())
-     *             .endpointId("vpce-046cf43c79424d4c9")
+     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
      *             .providerName("AWS")
-     *             .comment("Test")
-     *             .region("US_EAST_1")
-     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
      *             .build());
      * 
-     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
-     *             .projectId(atlas_project.id())
+     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .build());
+     * 
+     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName("test-db")
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .providerName("AWS")
+     *             .comment("New serverless endpoint")
      *             .build());
      * 
      *     }
@@ -17997,18 +19582,7 @@ public static CompletableFuture
      * <!--End PulumiCodeChooser -->
      * 
-     */
-    public static Output getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchives:getPrivatelinkEndpointServiceDataFederationOnlineArchives", TypeShape.of(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesInvokeResult.class), args, Utilities.withVersion(options));
-    }
-    /**
-     * ## # Data Source: mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives
-     * 
-     * `mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives` describes Private Endpoint Service resources for Data Federation and Online Archive.
-     * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
-     * 
-     * ## Example Usage
+     * ## Example with AZURE
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -18018,12 +19592,14 @@ public static Output")
+     *             .name("test-db")
+     *             .providerSettingsBackingProviderName("AZURE")
+     *             .providerSettingsProviderName("SERVERLESS")
+     *             .providerSettingsRegionName("US_EAST")
+     *             .continuousBackupEnabled(true)
      *             .build());
      * 
-     *         var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive("test", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()
-     *             .projectId(atlas_project.id())
-     *             .endpointId("vpce-046cf43c79424d4c9")
-     *             .providerName("AWS")
-     *             .comment("Test")
-     *             .region("US_EAST_1")
-     *             .customerEndpointDnsName("vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com")
+     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
+     *             .providerName("AZURE")
      *             .build());
      * 
-     *         final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()
-     *             .projectId(atlas_project.id())
+     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName(testServerlessInstance.name())
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .build());
+     * 
+     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
+     *             .projectId("")
+     *             .instanceName("test-db")
+     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .providerName("AZURE")
+     *             .comment("New serverless endpoint")
      *             .build());
      * 
      *     }
@@ -18061,9 +19648,12 @@ public static Output
      * <!--End PulumiCodeChooser -->
      * 
+     * ### Available complete examples
+     * - Setup private connection to a MongoDB Atlas Serverless Instance with AWS VPC
+     * 
      */
-    public static CompletableFuture getPrivatelinkEndpointServiceDataFederationOnlineArchivesPlain(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchives:getPrivatelinkEndpointServiceDataFederationOnlineArchives", TypeShape.of(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getPrivatelinkEndpointServiceServerlessPlain(GetPrivatelinkEndpointServiceServerlessPlainArgs args) {
+        return getPrivatelinkEndpointServiceServerlessPlain(args, InvokeOptions.Empty);
     }
     /**
      * ## # Data Source: privatelink_endpoint_service_serverless
@@ -18208,8 +19798,8 @@ public static CompletableFuture getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs args) {
-        return getPrivatelinkEndpointServiceServerless(args, InvokeOptions.Empty);
+    public static Output getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getPrivatelinkEndpointServiceServerless:getPrivatelinkEndpointServiceServerless", TypeShape.of(GetPrivatelinkEndpointServiceServerlessResult.class), args, Utilities.withVersion(options));
     }
     /**
      * ## # Data Source: privatelink_endpoint_service_serverless
@@ -18354,13 +19944,13 @@ public static Output getPrivateli
      * - Setup private connection to a MongoDB Atlas Serverless Instance with AWS VPC
      * 
      */
-    public static CompletableFuture getPrivatelinkEndpointServiceServerlessPlain(GetPrivatelinkEndpointServiceServerlessPlainArgs args) {
-        return getPrivatelinkEndpointServiceServerlessPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getPrivatelinkEndpointServiceServerlessPlain(GetPrivatelinkEndpointServiceServerlessPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPrivatelinkEndpointServiceServerless:getPrivatelinkEndpointServiceServerless", TypeShape.of(GetPrivatelinkEndpointServiceServerlessResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: privatelink_endpoint_service_serverless
+     * ## # Data Source: privatelink_endpoints_service_serverless
      * 
-     * `privatelink_endpoint_service_serverless` provides a Serverless PrivateLink Endpoint Service resource.
+     * `privatelink_endpoints_service_serverless` describes the list of all Serverless PrivateLink Endpoint Service resource.
      * 
      * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
@@ -18376,10 +19966,10 @@ public static CompletableFuture g
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.ServerlessInstance;
      * import com.pulumi.mongodbatlas.ServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsServiceServerlessArgs;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs;
-     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceServerlessArgs;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs;
      * import java.util.List;
@@ -18404,16 +19994,15 @@ public static CompletableFuture g
      *             .continuousBackupEnabled(true)
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
+     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder()
      *             .projectId("")
      *             .instanceName(testServerlessInstance.name())
-     *             .providerName("AWS")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder()
+     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
      *             .projectId("")
      *             .instanceName(testServerlessInstance.name())
-     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .providerName("AWS")
      *             .build());
      * 
      *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
@@ -18442,10 +20031,10 @@ public static CompletableFuture g
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.ServerlessInstance;
      * import com.pulumi.mongodbatlas.ServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsServiceServerlessArgs;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs;
-     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceServerlessArgs;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless;
      * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs;
      * import java.util.List;
@@ -18470,16 +20059,15 @@ public static CompletableFuture g
      *             .continuousBackupEnabled(true)
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
+     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder()
      *             .projectId("")
      *             .instanceName(testServerlessInstance.name())
-     *             .providerName("AZURE")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder()
+     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
      *             .projectId("")
      *             .instanceName(testServerlessInstance.name())
-     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
+     *             .providerName("AZURE")
      *             .build());
      * 
      *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
@@ -18496,17 +20084,14 @@ public static CompletableFuture g
      * 
* <!--End PulumiCodeChooser --> * - * ### Available complete examples - * - Setup private connection to a MongoDB Atlas Serverless Instance with AWS VPC - * */ - public static Output getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getPrivatelinkEndpointServiceServerless:getPrivatelinkEndpointServiceServerless", TypeShape.of(GetPrivatelinkEndpointServiceServerlessResult.class), args, Utilities.withVersion(options)); + public static Output getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs args) { + return getPrivatelinkEndpointsServiceServerless(args, InvokeOptions.Empty); } /** - * ## # Data Source: privatelink_endpoint_service_serverless + * ## # Data Source: privatelink_endpoints_service_serverless * - * `privatelink_endpoint_service_serverless` provides a Serverless PrivateLink Endpoint Service resource. + * `privatelink_endpoints_service_serverless` describes the list of all Serverless PrivateLink Endpoint Service resource. * * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. * @@ -18522,10 +20107,10 @@ public static Output getPrivateli * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.ServerlessInstance; * import com.pulumi.mongodbatlas.ServerlessInstanceArgs; + * import com.pulumi.mongodbatlas.MongodbatlasFunctions; + * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsServiceServerlessArgs; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs; - * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceServerlessArgs; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs; * import java.util.List; @@ -18550,16 +20135,15 @@ public static Output getPrivateli * .continuousBackupEnabled(true) * .build()); * - * var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder() + * final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder() * .projectId("") * .instanceName(testServerlessInstance.name()) - * .providerName("AWS") * .build()); * - * final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder() + * var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder() * .projectId("") * .instanceName(testServerlessInstance.name()) - * .endpointId(testPrivatelinkEndpointServerless.endpointId()) + * .providerName("AWS") * .build()); * * var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder() @@ -18588,10 +20172,10 @@ public static Output getPrivateli * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.ServerlessInstance; * import com.pulumi.mongodbatlas.ServerlessInstanceArgs; + * import com.pulumi.mongodbatlas.MongodbatlasFunctions; + * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsServiceServerlessArgs; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs; - * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceServerlessArgs; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless; * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs; * import java.util.List; @@ -18616,16 +20200,15 @@ public static Output getPrivateli * .continuousBackupEnabled(true) * .build()); * - * var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder() + * final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder() * .projectId("") * .instanceName(testServerlessInstance.name()) - * .providerName("AZURE") * .build()); * - * final var test = MongodbatlasFunctions.getPrivatelinkEndpointServiceServerless(GetPrivatelinkEndpointServiceServerlessArgs.builder() + * var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder() * .projectId("") * .instanceName(testServerlessInstance.name()) - * .endpointId(testPrivatelinkEndpointServerless.endpointId()) + * .providerName("AZURE") * .build()); * * var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder() @@ -18642,12 +20225,9 @@ public static Output getPrivateli *
* <!--End PulumiCodeChooser --> * - * ### Available complete examples - * - Setup private connection to a MongoDB Atlas Serverless Instance with AWS VPC - * */ - public static CompletableFuture getPrivatelinkEndpointServiceServerlessPlain(GetPrivatelinkEndpointServiceServerlessPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPrivatelinkEndpointServiceServerless:getPrivatelinkEndpointServiceServerless", TypeShape.of(GetPrivatelinkEndpointServiceServerlessResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getPrivatelinkEndpointsServiceServerlessPlain(GetPrivatelinkEndpointsServiceServerlessPlainArgs args) { + return getPrivatelinkEndpointsServiceServerlessPlain(args, InvokeOptions.Empty); } /** * ## # Data Source: privatelink_endpoints_service_serverless @@ -18787,8 +20367,8 @@ public static CompletableFuture g * <!--End PulumiCodeChooser --> * */ - public static Output getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs args) { - return getPrivatelinkEndpointsServiceServerless(args, InvokeOptions.Empty); + public static Output getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getPrivatelinkEndpointsServiceServerless:getPrivatelinkEndpointsServiceServerless", TypeShape.of(GetPrivatelinkEndpointsServiceServerlessInvokeResult.class), args, Utilities.withVersion(options)); } /** * ## # Data Source: privatelink_endpoints_service_serverless @@ -18928,18 +20508,19 @@ public static Output getPr * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getPrivatelinkEndpointsServiceServerlessPlain(GetPrivatelinkEndpointsServiceServerlessPlainArgs args) { - return getPrivatelinkEndpointsServiceServerlessPlain(args, InvokeOptions.Empty); + public static CompletableFuture getPrivatelinkEndpointsServiceServerlessPlain(GetPrivatelinkEndpointsServiceServerlessPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPrivatelinkEndpointsServiceServerless:getPrivatelinkEndpointsServiceServerless", TypeShape.of(GetPrivatelinkEndpointsServiceServerlessInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: privatelink_endpoints_service_serverless + * ## # Data Source: mongodbatlas.Project * - * `privatelink_endpoints_service_serverless` describes the list of all Serverless PrivateLink Endpoint Service resource. + * `mongodbatlas.Project` describes a MongoDB Atlas Project. This represents a project that has been created. * * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation. * - * ## Example with AWS + * ## Example Usage * + * ### Using project_id attribute to query * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -18948,14 +20529,12 @@ public static CompletableFuture")
-     *             .name("test-db")
-     *             .providerSettingsBackingProviderName("AWS")
-     *             .providerSettingsProviderName("SERVERLESS")
-     *             .providerSettingsRegionName("US_EAST_1")
-     *             .continuousBackupEnabled(true)
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
+     *         final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .projectId(testProject.id())
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
-     *             .providerName("AWS")
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### Using name attribute to query + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId("")
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName("test-db")
-     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
-     *             .providerName("AWS")
-     *             .comment("New serverless endpoint")
+     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .name(testProject.name())
      *             .build());
      * 
      *     }
@@ -19003,8 +20638,20 @@ public static CompletableFuture
      * <!--End PulumiCodeChooser -->
      * 
-     * ## Example with AZURE
+     */
+    public static Output getProject() {
+        return getProject(GetProjectArgs.Empty, InvokeOptions.Empty);
+    }
+    /**
+     * ## # Data Source: mongodbatlas.Project
+     * 
+     * `mongodbatlas.Project` describes a MongoDB Atlas Project. This represents a project that has been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
+     * ## Example Usage
+     * 
+     * ### Using project_id attribute to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -19013,14 +20660,12 @@ public static CompletableFuture")
-     *             .name("test-db")
-     *             .providerSettingsBackingProviderName("AZURE")
-     *             .providerSettingsProviderName("SERVERLESS")
-     *             .providerSettingsRegionName("US_EAST")
-     *             .continuousBackupEnabled(true)
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
+     *         final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .projectId(testProject.id())
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
-     *             .providerName("AZURE")
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### Using name attribute to query + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId("")
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName("test-db")
-     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
-     *             .providerName("AZURE")
-     *             .comment("New serverless endpoint")
+     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .name(testProject.name())
      *             .build());
      * 
      *     }
@@ -19069,18 +20770,19 @@ public static CompletableFuture getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getPrivatelinkEndpointsServiceServerless:getPrivatelinkEndpointsServiceServerless", TypeShape.of(GetPrivatelinkEndpointsServiceServerlessInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getProjectPlain() {
+        return getProjectPlain(GetProjectPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: privatelink_endpoints_service_serverless
+     * ## # Data Source: mongodbatlas.Project
      * 
-     * `privatelink_endpoints_service_serverless` describes the list of all Serverless PrivateLink Endpoint Service resource.
+     * `mongodbatlas.Project` describes a MongoDB Atlas Project. This represents a project that has been created.
      * 
      * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
      * 
-     * ## Example with AWS
+     * ## Example Usage
      * 
+     * ### Using project_id attribute to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -19089,14 +20791,12 @@ public static Output getPr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ServerlessInstance;
-     * import com.pulumi.mongodbatlas.ServerlessInstanceArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsServiceServerlessArgs;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19110,32 +20810,30 @@ public static Output getPr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testServerlessInstance = new ServerlessInstance("testServerlessInstance", ServerlessInstanceArgs.builder()
-     *             .projectId("")
-     *             .name("test-db")
-     *             .providerSettingsBackingProviderName("AWS")
-     *             .providerSettingsProviderName("SERVERLESS")
-     *             .providerSettingsRegionName("US_EAST_1")
-     *             .continuousBackupEnabled(true)
-     *             .build());
-     * 
-     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
-     *             .build());
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
-     *             .providerName("AWS")
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName("test-db")
-     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
-     *             .providerName("AWS")
-     *             .comment("New serverless endpoint")
+     *         final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .projectId(testProject.id())
      *             .build());
      * 
      *     }
@@ -19144,8 +20842,7 @@ public static Output getPr
      * 
* <!--End PulumiCodeChooser --> * - * ## Example with AZURE - * + * ### Using name attribute to query * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -19154,14 +20851,12 @@ public static Output getPr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ServerlessInstance;
-     * import com.pulumi.mongodbatlas.ServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsServiceServerlessArgs;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerless;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServerlessArgs;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerless;
-     * import com.pulumi.mongodbatlas.PrivatelinkEndpointServiceServerlessArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19175,32 +20870,28 @@ public static Output getPr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testServerlessInstance = new ServerlessInstance("testServerlessInstance", ServerlessInstanceArgs.builder()
-     *             .projectId("")
-     *             .name("test-db")
-     *             .providerSettingsBackingProviderName("AZURE")
-     *             .providerSettingsProviderName("SERVERLESS")
-     *             .providerSettingsRegionName("US_EAST")
-     *             .continuousBackupEnabled(true)
-     *             .build());
-     * 
-     *         final var test = MongodbatlasFunctions.getPrivatelinkEndpointsServiceServerless(GetPrivatelinkEndpointsServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
-     *             .build());
-     * 
-     *         var testPrivatelinkEndpointServerless = new PrivatelinkEndpointServerless("testPrivatelinkEndpointServerless", PrivatelinkEndpointServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName(testServerlessInstance.name())
-     *             .providerName("AZURE")
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId("")
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         var testPrivatelinkEndpointServiceServerless = new PrivatelinkEndpointServiceServerless("testPrivatelinkEndpointServiceServerless", PrivatelinkEndpointServiceServerlessArgs.builder()
-     *             .projectId("")
-     *             .instanceName("test-db")
-     *             .endpointId(testPrivatelinkEndpointServerless.endpointId())
-     *             .providerName("AZURE")
-     *             .comment("New serverless endpoint")
+     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .name(testProject.name())
      *             .build());
      * 
      *     }
@@ -19210,8 +20901,8 @@ public static Output getPr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getPrivatelinkEndpointsServiceServerlessPlain(GetPrivatelinkEndpointsServiceServerlessPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPrivatelinkEndpointsServiceServerless:getPrivatelinkEndpointsServiceServerless", TypeShape.of(GetPrivatelinkEndpointsServiceServerlessInvokeResult.class), args, Utilities.withVersion(options));
+    public static Output getProject(GetProjectArgs args) {
+        return getProject(args, InvokeOptions.Empty);
     }
     /**
      * ## # Data Source: mongodbatlas.Project
@@ -19341,8 +21032,8 @@ public static CompletableFuture getProject() {
-        return getProject(GetProjectArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getProjectPlain(GetProjectPlainArgs args) {
+        return getProjectPlain(args, InvokeOptions.Empty);
     }
     /**
      * ## # Data Source: mongodbatlas.Project
@@ -19472,8 +21163,8 @@ public static Output getProject() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectPlain() {
-        return getProjectPlain(GetProjectPlainArgs.Empty, InvokeOptions.Empty);
+    public static Output getProject(GetProjectArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
     }
     /**
      * ## # Data Source: mongodbatlas.Project
@@ -19592,8 +21283,114 @@ public static CompletableFuture getProjectPlain() {
      *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .name(testProject.name())
+     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
+     *             .name(testProject.name())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getProjectPlain(GetProjectPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * ### Using project_id and api_key_id attribute to query + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ProjectApiKey;
+     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
+     *             .description("Description of your API key")
+     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
+     *                 .projectId("64259ee860c43338194b0f8e")
+     *                 .roleNames("GROUP_READ_ONLY")
+     *                 .build())
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
+     *             .projectId("64259ee860c43338194b0f8e")
+     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjectApiKey(GetProjectApiKeyArgs args) { + return getProjectApiKey(args, InvokeOptions.Empty); + } + /** + * ## Example Usage + * + * ### Using project_id and api_key_id attribute to query + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ProjectApiKey;
+     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
+     *             .description("Description of your API key")
+     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
+     *                 .projectId("64259ee860c43338194b0f8e")
+     *                 .roleNames("GROUP_READ_ONLY")
+     *                 .build())
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
+     *             .projectId("64259ee860c43338194b0f8e")
+     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
      *             .build());
      * 
      *     }
@@ -19603,19 +21400,13 @@ public static CompletableFuture getProjectPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProject(GetProjectArgs args) {
-        return getProject(args, InvokeOptions.Empty);
+    public static CompletableFuture getProjectApiKeyPlain(GetProjectApiKeyPlainArgs args) {
+        return getProjectApiKeyPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.Project
-     * 
-     * `mongodbatlas.Project` describes a MongoDB Atlas Project. This represents a project that has been created.
-     * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
-     * 
      * ## Example Usage
      * 
-     * ### Using project_id attribute to query
+     * ### Using project_id and api_key_id attribute to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -19624,12 +21415,11 @@ public static Output getProject(GetProjectArgs args) {
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ProjectApiKey;
+     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19643,30 +21433,17 @@ public static Output getProject(GetProjectArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
-     * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
+     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
+     *             .description("Description of your API key")
+     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
+     *                 .projectId("64259ee860c43338194b0f8e")
+     *                 .roleNames("GROUP_READ_ONLY")
      *                 .build())
      *             .build());
      * 
-     *         final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .projectId(testProject.id())
+     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
+     *             .projectId("64259ee860c43338194b0f8e")
+     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
      *             .build());
      * 
      *     }
@@ -19675,7 +21452,14 @@ public static Output getProject(GetProjectArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * ### Using name attribute to query + */ + public static Output getProjectApiKey(GetProjectApiKeyArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getProjectApiKey:getProjectApiKey", TypeShape.of(GetProjectApiKeyResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * ### Using project_id and api_key_id attribute to query * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -19684,12 +21468,11 @@ public static Output getProject(GetProjectArgs args) {
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.ProjectApiKey;
+     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19703,28 +21486,17 @@ public static Output getProject(GetProjectArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId("")
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
+     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
+     *             .description("Description of your API key")
+     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
+     *                 .projectId("64259ee860c43338194b0f8e")
+     *                 .roleNames("GROUP_READ_ONLY")
      *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .name(testProject.name())
+     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
+     *             .projectId("64259ee860c43338194b0f8e")
+     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
      *             .build());
      * 
      *     }
@@ -19734,19 +21506,12 @@ public static Output getProject(GetProjectArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectPlain(GetProjectPlainArgs args) {
-        return getProjectPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getProjectApiKeyPlain(GetProjectApiKeyPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectApiKey:getProjectApiKey", TypeShape.of(GetProjectApiKeyResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.Project
-     * 
-     * `mongodbatlas.Project` describes a MongoDB Atlas Project. This represents a project that has been created.
-     * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
-     * 
      * ## Example Usage
      * 
-     * ### Using project_id attribute to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -19756,11 +21521,7 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19774,30 +21535,10 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
-     * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .projectId(testProject.id())
+     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .projectId("32b6e34b3d91647abb20e7b8")
      *             .build());
      * 
      *     }
@@ -19806,7 +21547,13 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * 
* <!--End PulumiCodeChooser --> * - * ### Using name attribute to query + */ + public static Output getProjectApiKeys(GetProjectApiKeysArgs args) { + return getProjectApiKeys(args, InvokeOptions.Empty); + } + /** + * ## Example Usage + * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -19815,12 +21562,8 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19834,28 +21577,10 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId("")
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .name(testProject.name())
+     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .projectId("32b6e34b3d91647abb20e7b8")
      *             .build());
      * 
      *     }
@@ -19865,19 +21590,12 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProject(GetProjectArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getProjectApiKeysPlain(GetProjectApiKeysPlainArgs args) {
+        return getProjectApiKeysPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.Project
-     * 
-     * `mongodbatlas.Project` describes a MongoDB Atlas Project. This represents a project that has been created.
-     * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find group_id in the official documentation.
-     * 
      * ## Example Usage
      * 
-     * ### Using project_id attribute to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -19887,11 +21605,7 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19905,30 +21619,52 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
-     * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
+     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .projectId("32b6e34b3d91647abb20e7b8")
      *             .build());
      * 
-     *         final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .projectId(testProject.id())
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjectApiKeys(GetProjectApiKeysArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getProjectApiKeys:getProjectApiKeys", TypeShape.of(GetProjectApiKeysInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
+     *             .projectId("32b6e34b3d91647abb20e7b8")
      *             .build());
      * 
      *     }
@@ -19937,7 +21673,21 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      * 
* <!--End PulumiCodeChooser --> * - * ### Using name attribute to query + */ + public static CompletableFuture getProjectApiKeysPlain(GetProjectApiKeysPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectApiKeys:getProjectApiKeys", TypeShape.of(GetProjectApiKeysInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.ProjectInvitation + * + * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation. + * + * ## Example Usage + * + * ### S + * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -19946,12 +21696,10 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.ProjectInvitation;
+     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -19965,28 +21713,15 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId("")
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
+     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
+     *             .username("test-acc-username")
+     *             .projectId("")
+     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()
-     *             .name(testProject.name())
+     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
+     *             .projectId(testProjectInvitation.projectId())
+     *             .username(testProjectInvitation.username())
      *             .build());
      * 
      *     }
@@ -19996,13 +21731,20 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectPlain(GetProjectPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
+    public static Output getProjectInvitation(GetProjectInvitationArgs args) {
+        return getProjectInvitation(args, InvokeOptions.Empty);
     }
     /**
+     * ## # Data Source: mongodbatlas.ProjectInvitation
+     * 
+     * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation.
+     * 
      * ## Example Usage
      * 
-     * ### Using project_id and api_key_id attribute to query
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -20011,11 +21753,10 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectApiKey;
-     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
+     * import com.pulumi.mongodbatlas.ProjectInvitation;
+     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20029,17 +21770,15 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
-     *             .description("Description of your API key")
-     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
-     *                 .projectId("64259ee860c43338194b0f8e")
-     *                 .roleNames("GROUP_READ_ONLY")
-     *                 .build())
+     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
+     *             .username("test-acc-username")
+     *             .projectId("")
+     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
-     *             .projectId("64259ee860c43338194b0f8e")
-     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
+     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
+     *             .projectId(testProjectInvitation.projectId())
+     *             .username(testProjectInvitation.username())
      *             .build());
      * 
      *     }
@@ -20049,13 +21788,20 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProjectApiKey(GetProjectApiKeyArgs args) {
-        return getProjectApiKey(args, InvokeOptions.Empty);
+    public static CompletableFuture getProjectInvitationPlain(GetProjectInvitationPlainArgs args) {
+        return getProjectInvitationPlain(args, InvokeOptions.Empty);
     }
     /**
+     * ## # Data Source: mongodbatlas.ProjectInvitation
+     * 
+     * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation.
+     * 
      * ## Example Usage
      * 
-     * ### Using project_id and api_key_id attribute to query
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -20064,11 +21810,10 @@ public static Output getProjectApiKey(GetProjectApiKeyAr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectApiKey;
-     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
+     * import com.pulumi.mongodbatlas.ProjectInvitation;
+     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20082,17 +21827,15 @@ public static Output getProjectApiKey(GetProjectApiKeyAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
-     *             .description("Description of your API key")
-     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
-     *                 .projectId("64259ee860c43338194b0f8e")
-     *                 .roleNames("GROUP_READ_ONLY")
-     *                 .build())
+     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
+     *             .username("test-acc-username")
+     *             .projectId("")
+     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
-     *             .projectId("64259ee860c43338194b0f8e")
-     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
+     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
+     *             .projectId(testProjectInvitation.projectId())
+     *             .username(testProjectInvitation.username())
      *             .build());
      * 
      *     }
@@ -20102,13 +21845,20 @@ public static Output getProjectApiKey(GetProjectApiKeyAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectApiKeyPlain(GetProjectApiKeyPlainArgs args) {
-        return getProjectApiKeyPlain(args, InvokeOptions.Empty);
+    public static Output getProjectInvitation(GetProjectInvitationArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getProjectInvitation:getProjectInvitation", TypeShape.of(GetProjectInvitationResult.class), args, Utilities.withVersion(options));
     }
     /**
+     * ## # Data Source: mongodbatlas.ProjectInvitation
+     * 
+     * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation.
+     * 
      * ## Example Usage
      * 
-     * ### Using project_id and api_key_id attribute to query
+     * ### S
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -20117,11 +21867,10 @@ public static CompletableFuture getProjectApiKeyPlain(Ge
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectApiKey;
-     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
+     * import com.pulumi.mongodbatlas.ProjectInvitation;
+     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20135,17 +21884,15 @@ public static CompletableFuture getProjectApiKeyPlain(Ge
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
-     *             .description("Description of your API key")
-     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
-     *                 .projectId("64259ee860c43338194b0f8e")
-     *                 .roleNames("GROUP_READ_ONLY")
-     *                 .build())
+     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
+     *             .username("test-acc-username")
+     *             .projectId("")
+     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
-     *             .projectId("64259ee860c43338194b0f8e")
-     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
+     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
+     *             .projectId(testProjectInvitation.projectId())
+     *             .username(testProjectInvitation.username())
      *             .build());
      * 
      *     }
@@ -20155,13 +21902,22 @@ public static CompletableFuture getProjectApiKeyPlain(Ge
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProjectApiKey(GetProjectApiKeyArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getProjectApiKey:getProjectApiKey", TypeShape.of(GetProjectApiKeyResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getProjectInvitationPlain(GetProjectInvitationPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectInvitation:getProjectInvitation", TypeShape.of(GetProjectInvitationResult.class), args, Utilities.withVersion(options));
     }
     /**
+     * ## # Data Source: mongodbatlas.ProjectIpAccessList
+     * 
+     * `mongodbatlas.ProjectIpAccessList` 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.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * 
+     * > **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 (comments can however), hence a change will force the destruction and recreation of entries.
+     * 
      * ## Example Usage
      * 
-     * ### Using project_id and api_key_id attribute to query
+     * ### Using CIDR Block
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -20170,11 +21926,10 @@ public static Output getProjectApiKey(GetProjectApiKeyAr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectApiKey;
-     * import com.pulumi.mongodbatlas.ProjectApiKeyArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20188,17 +21943,15 @@ public static Output getProjectApiKey(GetProjectApiKeyAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectApiKey = new ProjectApiKey("testProjectApiKey", ProjectApiKeyArgs.builder()
-     *             .description("Description of your API key")
-     *             .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()
-     *                 .projectId("64259ee860c43338194b0f8e")
-     *                 .roleNames("GROUP_READ_ONLY")
-     *                 .build())
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .cidrBlock("1.2.3.4/32")
+     *             .comment("cidr block for tf acc testing")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()
-     *             .projectId("64259ee860c43338194b0f8e")
-     *             .apiKeyId(testMongodbatlasApiKey.apiKeyId())
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .cidrBlock(testProjectIpAccessList.cidrBlock())
      *             .build());
      * 
      *     }
@@ -20207,13 +21960,7 @@ public static Output getProjectApiKey(GetProjectApiKeyAr
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectApiKeyPlain(GetProjectApiKeyPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectApiKey:getProjectApiKey", TypeShape.of(GetProjectApiKeyResult.class), args, Utilities.withVersion(options)); - } - /** - * ## Example Usage - * + * ### Using IP Address * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20222,8 +21969,10 @@ public static CompletableFuture getProjectApiKeyPlain(Ge
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20237,10 +21986,15 @@ public static CompletableFuture getProjectApiKeyPlain(Ge
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .projectId("32b6e34b3d91647abb20e7b8")
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .ipAddress("2.3.4.5")
+     *             .comment("ip address for tf acc testing")
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .ipAddress(testProjectIpAccessList.ipAddress())
      *             .build());
      * 
      *     }
@@ -20249,13 +22003,7 @@ public static CompletableFuture getProjectApiKeyPlain(Ge
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProjectApiKeys(GetProjectApiKeysArgs args) { - return getProjectApiKeys(args, InvokeOptions.Empty); - } - /** - * ## Example Usage - * + * ### Using an AWS Security Group * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20264,8 +22012,15 @@ public static Output getProjectApiKeys(GetProject
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.NetworkContainer;
+     * import com.pulumi.mongodbatlas.NetworkContainerArgs;
+     * import com.pulumi.mongodbatlas.NetworkPeering;
+     * import com.pulumi.mongodbatlas.NetworkPeeringArgs;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.resources.CustomResourceOptions;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20279,10 +22034,34 @@ public static Output getProjectApiKeys(GetProject
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .projectId("32b6e34b3d91647abb20e7b8")
+     *         var testNetworkContainer = new NetworkContainer("testNetworkContainer", NetworkContainerArgs.builder()
+     *             .projectId("")
+     *             .atlasCidrBlock("192.168.208.0/21")
+     *             .providerName("AWS")
+     *             .regionName("US_EAST_1")
+     *             .build());
+     * 
+     *         var testNetworkPeering = new NetworkPeering("testNetworkPeering", NetworkPeeringArgs.builder()
+     *             .projectId("")
+     *             .containerId(testNetworkContainer.containerId())
+     *             .accepterRegionName("us-east-1")
+     *             .providerName("AWS")
+     *             .routeTableCidrBlock("172.31.0.0/16")
+     *             .vpcId("vpc-0d93d6f69f1578bd8")
+     *             .awsAccountId("232589400519")
+     *             .build());
+     * 
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .awsSecurityGroup("sg-0026348ec11780bd1")
+     *             .comment("TestAcc for awsSecurityGroup")
+     *             .build(), CustomResourceOptions.builder()
+     *                 .dependsOn(testNetworkPeering)
+     *                 .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .awsSecurityGroup(testProjectIpAccessList.awsSecurityGroup())
      *             .build());
      * 
      *     }
@@ -20291,13 +22070,25 @@ public static Output getProjectApiKeys(GetProject
      * 
* <!--End PulumiCodeChooser --> * + * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. + * */ - public static CompletableFuture getProjectApiKeysPlain(GetProjectApiKeysPlainArgs args) { - return getProjectApiKeysPlain(args, InvokeOptions.Empty); + public static Output getProjectIpAccessList(GetProjectIpAccessListArgs args) { + return getProjectIpAccessList(args, InvokeOptions.Empty); } /** + * ## # Data Source: mongodbatlas.ProjectIpAccessList + * + * `mongodbatlas.ProjectIpAccessList` 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. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * > **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 (comments can however), hence a change will force the destruction and recreation of entries. + * * ## Example Usage * + * ### Using CIDR Block * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20306,8 +22097,10 @@ public static CompletableFuture getProjectApiKeys
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20321,10 +22114,15 @@ public static CompletableFuture getProjectApiKeys
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .projectId("32b6e34b3d91647abb20e7b8")
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .cidrBlock("1.2.3.4/32")
+     *             .comment("cidr block for tf acc testing")
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .cidrBlock(testProjectIpAccessList.cidrBlock())
      *             .build());
      * 
      *     }
@@ -20333,13 +22131,7 @@ public static CompletableFuture getProjectApiKeys
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProjectApiKeys(GetProjectApiKeysArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getProjectApiKeys:getProjectApiKeys", TypeShape.of(GetProjectApiKeysInvokeResult.class), args, Utilities.withVersion(options)); - } - /** - * ## Example Usage - * + * ### Using IP Address * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20348,8 +22140,10 @@ public static Output getProjectApiKeys(GetProject
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20363,10 +22157,15 @@ public static Output getProjectApiKeys(GetProject
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .projectId("32b6e34b3d91647abb20e7b8")
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .ipAddress("2.3.4.5")
+     *             .comment("ip address for tf acc testing")
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .ipAddress(testProjectIpAccessList.ipAddress())
      *             .build());
      * 
      *     }
@@ -20375,21 +22174,7 @@ public static Output getProjectApiKeys(GetProject
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectApiKeysPlain(GetProjectApiKeysPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectApiKeys:getProjectApiKeys", TypeShape.of(GetProjectApiKeysInvokeResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.ProjectInvitation - * - * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation. - * - * ## Example Usage - * - * ### S - * + * ### Using an AWS Security Group * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20398,10 +22183,15 @@ public static CompletableFuture getProjectApiKeys
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectInvitation;
-     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.NetworkContainer;
+     * import com.pulumi.mongodbatlas.NetworkContainerArgs;
+     * import com.pulumi.mongodbatlas.NetworkPeering;
+     * import com.pulumi.mongodbatlas.NetworkPeeringArgs;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.resources.CustomResourceOptions;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20415,15 +22205,34 @@ public static CompletableFuture getProjectApiKeys
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
-     *             .username("test-acc-username")
+     *         var testNetworkContainer = new NetworkContainer("testNetworkContainer", NetworkContainerArgs.builder()
      *             .projectId("")
-     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
+     *             .atlasCidrBlock("192.168.208.0/21")
+     *             .providerName("AWS")
+     *             .regionName("US_EAST_1")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
-     *             .projectId(testProjectInvitation.projectId())
-     *             .username(testProjectInvitation.username())
+     *         var testNetworkPeering = new NetworkPeering("testNetworkPeering", NetworkPeeringArgs.builder()
+     *             .projectId("")
+     *             .containerId(testNetworkContainer.containerId())
+     *             .accepterRegionName("us-east-1")
+     *             .providerName("AWS")
+     *             .routeTableCidrBlock("172.31.0.0/16")
+     *             .vpcId("vpc-0d93d6f69f1578bd8")
+     *             .awsAccountId("232589400519")
+     *             .build());
+     * 
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .awsSecurityGroup("sg-0026348ec11780bd1")
+     *             .comment("TestAcc for awsSecurityGroup")
+     *             .build(), CustomResourceOptions.builder()
+     *                 .dependsOn(testNetworkPeering)
+     *                 .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .awsSecurityGroup(testProjectIpAccessList.awsSecurityGroup())
      *             .build());
      * 
      *     }
@@ -20432,21 +22241,25 @@ public static CompletableFuture getProjectApiKeys
      * 
* <!--End PulumiCodeChooser --> * + * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. + * */ - public static Output getProjectInvitation(GetProjectInvitationArgs args) { - return getProjectInvitation(args, InvokeOptions.Empty); + public static CompletableFuture getProjectIpAccessListPlain(GetProjectIpAccessListPlainArgs args) { + return getProjectIpAccessListPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.ProjectInvitation + * ## # Data Source: mongodbatlas.ProjectIpAccessList * - * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project. + * `mongodbatlas.ProjectIpAccessList` 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. * - * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation. + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * - * ## Example Usage + * > **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 (comments can however), hence a change will force the destruction and recreation of entries. * - * ### S + * ## Example Usage * + * ### Using CIDR Block * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20455,10 +22268,10 @@ public static Output getProjectInvitation(GetProject
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectInvitation;
-     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20472,15 +22285,15 @@ public static Output getProjectInvitation(GetProject
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
-     *             .username("test-acc-username")
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
      *             .projectId("")
-     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
+     *             .cidrBlock("1.2.3.4/32")
+     *             .comment("cidr block for tf acc testing")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
-     *             .projectId(testProjectInvitation.projectId())
-     *             .username(testProjectInvitation.username())
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .cidrBlock(testProjectIpAccessList.cidrBlock())
      *             .build());
      * 
      *     }
@@ -20489,21 +22302,7 @@ public static Output getProjectInvitation(GetProject
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectInvitationPlain(GetProjectInvitationPlainArgs args) { - return getProjectInvitationPlain(args, InvokeOptions.Empty); - } - /** - * ## # Data Source: mongodbatlas.ProjectInvitation - * - * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation. - * - * ## Example Usage - * - * ### S - * + * ### Using IP Address * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20512,10 +22311,10 @@ public static CompletableFuture getProjectInvitation
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectInvitation;
-     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20529,15 +22328,15 @@ public static CompletableFuture getProjectInvitation
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
-     *             .username("test-acc-username")
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
      *             .projectId("")
-     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
+     *             .ipAddress("2.3.4.5")
+     *             .comment("ip address for tf acc testing")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
-     *             .projectId(testProjectInvitation.projectId())
-     *             .username(testProjectInvitation.username())
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .ipAddress(testProjectIpAccessList.ipAddress())
      *             .build());
      * 
      *     }
@@ -20546,21 +22345,7 @@ public static CompletableFuture getProjectInvitation
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProjectInvitation(GetProjectInvitationArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getProjectInvitation:getProjectInvitation", TypeShape.of(GetProjectInvitationResult.class), args, Utilities.withVersion(options)); - } - /** - * ## # Data Source: mongodbatlas.ProjectInvitation - * - * `mongodbatlas.ProjectInvitation` describes an invitation to a user to join an Atlas project. - * - * > **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation. - * - * ## Example Usage - * - * ### S - * + * ### Using an AWS Security Group * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20569,10 +22354,15 @@ public static Output getProjectInvitation(GetProject
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectInvitation;
-     * import com.pulumi.mongodbatlas.ProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.NetworkContainer;
+     * import com.pulumi.mongodbatlas.NetworkContainerArgs;
+     * import com.pulumi.mongodbatlas.NetworkPeering;
+     * import com.pulumi.mongodbatlas.NetworkPeeringArgs;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
+     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.resources.CustomResourceOptions;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20585,16 +22375,35 @@ public static Output getProjectInvitation(GetProject
      *         Pulumi.run(App::stack);
      *     }
      * 
-     *     public static void stack(Context ctx) {
-     *         var testProjectInvitation = new ProjectInvitation("testProjectInvitation", ProjectInvitationArgs.builder()
-     *             .username("test-acc-username")
+     *     public static void stack(Context ctx) {
+     *         var testNetworkContainer = new NetworkContainer("testNetworkContainer", NetworkContainerArgs.builder()
+     *             .projectId("")
+     *             .atlasCidrBlock("192.168.208.0/21")
+     *             .providerName("AWS")
+     *             .regionName("US_EAST_1")
+     *             .build());
+     * 
+     *         var testNetworkPeering = new NetworkPeering("testNetworkPeering", NetworkPeeringArgs.builder()
      *             .projectId("")
-     *             .roles("GROUP_DATA_ACCESS_READ_WRITE")
+     *             .containerId(testNetworkContainer.containerId())
+     *             .accepterRegionName("us-east-1")
+     *             .providerName("AWS")
+     *             .routeTableCidrBlock("172.31.0.0/16")
+     *             .vpcId("vpc-0d93d6f69f1578bd8")
+     *             .awsAccountId("232589400519")
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()
-     *             .projectId(testProjectInvitation.projectId())
-     *             .username(testProjectInvitation.username())
+     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
+     *             .projectId("")
+     *             .awsSecurityGroup("sg-0026348ec11780bd1")
+     *             .comment("TestAcc for awsSecurityGroup")
+     *             .build(), CustomResourceOptions.builder()
+     *                 .dependsOn(testNetworkPeering)
+     *                 .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
+     *             .projectId(testProjectIpAccessList.projectId())
+     *             .awsSecurityGroup(testProjectIpAccessList.awsSecurityGroup())
      *             .build());
      * 
      *     }
@@ -20603,9 +22412,11 @@ public static Output getProjectInvitation(GetProject
      * 
* <!--End PulumiCodeChooser --> * + * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. + * */ - public static CompletableFuture getProjectInvitationPlain(GetProjectInvitationPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectInvitation:getProjectInvitation", TypeShape.of(GetProjectInvitationResult.class), args, Utilities.withVersion(options)); + public static Output getProjectIpAccessList(GetProjectIpAccessListArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList", TypeShape.of(GetProjectIpAccessListResult.class), args, Utilities.withVersion(options)); } /** * ## # Data Source: mongodbatlas.ProjectIpAccessList @@ -20775,22 +22586,17 @@ public static CompletableFuture getProjectInvitation * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. * */ - public static Output getProjectIpAccessList(GetProjectIpAccessListArgs args) { - return getProjectIpAccessList(args, InvokeOptions.Empty); + public static CompletableFuture getProjectIpAccessListPlain(GetProjectIpAccessListPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList", TypeShape.of(GetProjectIpAccessListResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.ProjectIpAccessList - * - * `mongodbatlas.ProjectIpAccessList` 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. + * ## # Data Source: mongodbatlas.getProjectIpAddresses * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. - * - * > **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 (comments can however), hence a change will force the destruction and recreation of entries. + * `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. * * ## Example Usage * - * ### Using CIDR Block + * ### S * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20799,10 +22605,8 @@ public static Output getProjectIpAccessList(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20816,24 +22620,75 @@ public static Output getProjectIpAccessList(GetPro
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .cidrBlock("1.2.3.4/32")
-     *             .comment("cidr block for tf acc testing")
+     *         final var test = MongodbatlasFunctions.getProjectIpAddresses(GetProjectIpAddressesArgs.builder()
+     *             .projectId(projectId)
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .cidrBlock(testProjectIpAccessList.cidrBlock())
+     *         ctx.export("projectServices", test.applyValue(getProjectIpAddressesResult -> getProjectIpAddressesResult.services()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjectIpAddresses(GetProjectIpAddressesArgs args) { + return getProjectIpAddresses(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getProjectIpAddresses + * + * `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + * + * ## Example Usage + * + * ### S + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = MongodbatlasFunctions.getProjectIpAddresses(GetProjectIpAddressesArgs.builder()
+     *             .projectId(projectId)
      *             .build());
      * 
+     *         ctx.export("projectServices", test.applyValue(getProjectIpAddressesResult -> getProjectIpAddressesResult.services()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Using IP Address + */ + public static CompletableFuture getProjectIpAddressesPlain(GetProjectIpAddressesPlainArgs args) { + return getProjectIpAddressesPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getProjectIpAddresses + * + * `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + * + * ## Example Usage + * + * ### S * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20842,10 +22697,8 @@ public static Output getProjectIpAccessList(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20859,24 +22712,76 @@ public static Output getProjectIpAccessList(GetPro
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .ipAddress("2.3.4.5")
-     *             .comment("ip address for tf acc testing")
+     *         final var test = MongodbatlasFunctions.getProjectIpAddresses(GetProjectIpAddressesArgs.builder()
+     *             .projectId(projectId)
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .ipAddress(testProjectIpAccessList.ipAddress())
+     *         ctx.export("projectServices", test.applyValue(getProjectIpAddressesResult -> getProjectIpAddressesResult.services()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjectIpAddresses(GetProjectIpAddressesArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", TypeShape.of(GetProjectIpAddressesResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getProjectIpAddresses + * + * `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + * + * ## Example Usage + * + * ### S + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = MongodbatlasFunctions.getProjectIpAddresses(GetProjectIpAddressesArgs.builder()
+     *             .projectId(projectId)
      *             .build());
      * 
+     *         ctx.export("projectServices", test.applyValue(getProjectIpAddressesResult -> getProjectIpAddressesResult.services()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Using an AWS Security Group + */ + public static CompletableFuture getProjectIpAddressesPlain(GetProjectIpAddressesPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", TypeShape.of(GetProjectIpAddressesResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.getProjects + * + * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20885,15 +22790,12 @@ public static Output getProjectIpAccessList(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.NetworkContainer;
-     * import com.pulumi.mongodbatlas.NetworkContainerArgs;
-     * import com.pulumi.mongodbatlas.NetworkPeering;
-     * import com.pulumi.mongodbatlas.NetworkPeeringArgs;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
-     * import com.pulumi.resources.CustomResourceOptions;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20907,34 +22809,104 @@ public static Output getProjectIpAccessList(GetPro
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testNetworkContainer = new NetworkContainer("testNetworkContainer", NetworkContainerArgs.builder()
-     *             .projectId("")
-     *             .atlasCidrBlock("192.168.208.0/21")
-     *             .providerName("AWS")
-     *             .regionName("US_EAST_1")
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         var testNetworkPeering = new NetworkPeering("testNetworkPeering", NetworkPeeringArgs.builder()
-     *             .projectId("")
-     *             .containerId(testNetworkContainer.containerId())
-     *             .accepterRegionName("us-east-1")
-     *             .providerName("AWS")
-     *             .routeTableCidrBlock("172.31.0.0/16")
-     *             .vpcId("vpc-0d93d6f69f1578bd8")
-     *             .awsAccountId("232589400519")
+     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
      *             .build());
      * 
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .awsSecurityGroup("sg-0026348ec11780bd1")
-     *             .comment("TestAcc for awsSecurityGroup")
-     *             .build(), CustomResourceOptions.builder()
-     *                 .dependsOn(testNetworkPeering)
-     *                 .build());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjects() { + return getProjects(GetProjectsArgs.Empty, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getProjects + * + * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .awsSecurityGroup(testProjectIpAccessList.awsSecurityGroup())
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
+     *             .build());
+     * 
+     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
      *             .build());
      * 
      *     }
@@ -20943,25 +22915,19 @@ public static Output getProjectIpAccessList(GetPro
      * 
* <!--End PulumiCodeChooser --> * - * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. - * */ - public static CompletableFuture getProjectIpAccessListPlain(GetProjectIpAccessListPlainArgs args) { - return getProjectIpAccessListPlain(args, InvokeOptions.Empty); + public static CompletableFuture getProjectsPlain() { + return getProjectsPlain(GetProjectsPlainArgs.Empty, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.ProjectIpAccessList + * ## # Data Source: mongodbatlas.getProjects * - * `mongodbatlas.ProjectIpAccessList` 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. + * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * - * > **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 (comments can however), hence a change will force the destruction and recreation of entries. - * * ## Example Usage * - * ### Using CIDR Block * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -20970,10 +22936,12 @@ public static CompletableFuture getProjectIpAccess
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -20987,15 +22955,31 @@ public static CompletableFuture getProjectIpAccess
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .cidrBlock("1.2.3.4/32")
-     *             .comment("cidr block for tf acc testing")
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .cidrBlock(testProjectIpAccessList.cidrBlock())
+     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
      *             .build());
      * 
      *     }
@@ -21004,7 +22988,19 @@ public static CompletableFuture getProjectIpAccess
      * 
* <!--End PulumiCodeChooser --> * - * ### Using IP Address + */ + public static Output getProjects(GetProjectsArgs args) { + return getProjects(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getProjects + * + * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -21013,10 +23009,12 @@ public static CompletableFuture getProjectIpAccess
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21030,15 +23028,31 @@ public static CompletableFuture getProjectIpAccess
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .ipAddress("2.3.4.5")
-     *             .comment("ip address for tf acc testing")
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .ipAddress(testProjectIpAccessList.ipAddress())
+     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
      *             .build());
      * 
      *     }
@@ -21047,7 +23061,19 @@ public static CompletableFuture getProjectIpAccess
      * 
* <!--End PulumiCodeChooser --> * - * ### Using an AWS Security Group + */ + public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args) { + return getProjectsPlain(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.getProjects + * + * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -21056,15 +23082,12 @@ public static CompletableFuture getProjectIpAccess
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.NetworkContainer;
-     * import com.pulumi.mongodbatlas.NetworkContainerArgs;
-     * import com.pulumi.mongodbatlas.NetworkPeering;
-     * import com.pulumi.mongodbatlas.NetworkPeeringArgs;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
-     * import com.pulumi.resources.CustomResourceOptions;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21078,34 +23101,31 @@ public static CompletableFuture getProjectIpAccess
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testNetworkContainer = new NetworkContainer("testNetworkContainer", NetworkContainerArgs.builder()
-     *             .projectId("")
-     *             .atlasCidrBlock("192.168.208.0/21")
-     *             .providerName("AWS")
-     *             .regionName("US_EAST_1")
-     *             .build());
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         var testNetworkPeering = new NetworkPeering("testNetworkPeering", NetworkPeeringArgs.builder()
-     *             .projectId("")
-     *             .containerId(testNetworkContainer.containerId())
-     *             .accepterRegionName("us-east-1")
-     *             .providerName("AWS")
-     *             .routeTableCidrBlock("172.31.0.0/16")
-     *             .vpcId("vpc-0d93d6f69f1578bd8")
-     *             .awsAccountId("232589400519")
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .awsSecurityGroup("sg-0026348ec11780bd1")
-     *             .comment("TestAcc for awsSecurityGroup")
-     *             .build(), CustomResourceOptions.builder()
-     *                 .dependsOn(testNetworkPeering)
-     *                 .build());
-     * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .awsSecurityGroup(testProjectIpAccessList.awsSecurityGroup())
+     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
      *             .build());
      * 
      *     }
@@ -21114,25 +23134,19 @@ public static CompletableFuture getProjectIpAccess
      * 
* <!--End PulumiCodeChooser --> * - * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. - * */ - public static Output getProjectIpAccessList(GetProjectIpAccessListArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList", TypeShape.of(GetProjectIpAccessListResult.class), args, Utilities.withVersion(options)); + public static Output getProjects(GetProjectsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getProjects:getProjects", TypeShape.of(GetProjectsInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.ProjectIpAccessList + * ## # Data Source: mongodbatlas.getProjects * - * `mongodbatlas.ProjectIpAccessList` 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. + * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * - * > **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 (comments can however), hence a change will force the destruction and recreation of entries. - * * ## Example Usage * - * ### Using CIDR Block * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -21141,10 +23155,12 @@ public static Output getProjectIpAccessList(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
+     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21158,15 +23174,31 @@ public static Output getProjectIpAccessList(GetPro
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .cidrBlock("1.2.3.4/32")
-     *             .comment("cidr block for tf acc testing")
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         var testProject = new Project("testProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
+     *             .teams(            
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e0fa8c99ccf641c722fe645")
+     *                     .roleNames("GROUP_OWNER")
+     *                     .build(),
+     *                 ProjectTeamArgs.builder()
+     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
+     *                     .roleNames(                    
+     *                         "GROUP_READ_ONLY",
+     *                         "GROUP_DATA_ACCESS_READ_WRITE")
+     *                     .build())
+     *             .limits(ProjectLimitArgs.builder()
+     *                 .name("atlas.project.deployment.clusters")
+     *                 .value(26)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .cidrBlock(testProjectIpAccessList.cidrBlock())
+     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
+     *             .pageNum(1)
+     *             .itemsPerPage(5)
      *             .build());
      * 
      *     }
@@ -21175,7 +23207,18 @@ public static Output getProjectIpAccessList(GetPro
      * 
* <!--End PulumiCodeChooser --> * - * ### Using IP Address + */ + public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjects:getProjects", TypeShape.of(GetProjectsInvokeResult.class), args, Utilities.withVersion(options)); + } + /** + * ## # Data Source: mongodbatlas.PushBasedLogExport + * + * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature. + * + * ## Example Usage + * + * ### S * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -21184,10 +23227,17 @@ public static Output getProjectIpAccessList(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.PushBasedLogExport;
+     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21201,24 +23251,56 @@ public static Output getProjectIpAccessList(GetPro
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .ipAddress("2.3.4.5")
-     *             .comment("ip address for tf acc testing")
+     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
+     *             .name(atlasProjectName)
+     *             .orgId(atlasOrgId)
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .ipAddress(testProjectIpAccessList.ipAddress())
+     *         // Set up cloud provider access in Atlas using the created IAM role
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .providerName("AWS")
+     *             .build());
+     * 
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
+     *                 .build())
+     *             .build());
+     * 
+     *         // Set up push-based log export with authorized IAM role
+     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .bucketName(logBucket.bucket())
+     *             .iamRoleId(authRole.roleId())
+     *             .prefixPath("push-based-log-test")
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
+     *             .projectId(testPushBasedLogExport.projectId())
      *             .build());
      * 
+     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Using an AWS Security Group + */ + public static Output getPushBasedLogExport(GetPushBasedLogExportArgs args) { + return getPushBasedLogExport(args, InvokeOptions.Empty); + } + /** + * ## # Data Source: mongodbatlas.PushBasedLogExport + * + * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature. + * + * ## Example Usage + * + * ### S * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -21227,15 +23309,17 @@ public static Output getProjectIpAccessList(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.NetworkContainer;
-     * import com.pulumi.mongodbatlas.NetworkContainerArgs;
-     * import com.pulumi.mongodbatlas.NetworkPeering;
-     * import com.pulumi.mongodbatlas.NetworkPeeringArgs;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessList;
-     * import com.pulumi.mongodbatlas.ProjectIpAccessListArgs;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.PushBasedLogExport;
+     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;
-     * import com.pulumi.resources.CustomResourceOptions;
+     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21249,57 +23333,56 @@ public static Output getProjectIpAccessList(GetPro
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var testNetworkContainer = new NetworkContainer("testNetworkContainer", NetworkContainerArgs.builder()
-     *             .projectId("")
-     *             .atlasCidrBlock("192.168.208.0/21")
-     *             .providerName("AWS")
-     *             .regionName("US_EAST_1")
+     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
+     *             .name(atlasProjectName)
+     *             .orgId(atlasOrgId)
      *             .build());
      * 
-     *         var testNetworkPeering = new NetworkPeering("testNetworkPeering", NetworkPeeringArgs.builder()
-     *             .projectId("")
-     *             .containerId(testNetworkContainer.containerId())
-     *             .accepterRegionName("us-east-1")
+     *         // Set up cloud provider access in Atlas using the created IAM role
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(project_tf.id())
      *             .providerName("AWS")
-     *             .routeTableCidrBlock("172.31.0.0/16")
-     *             .vpcId("vpc-0d93d6f69f1578bd8")
-     *             .awsAccountId("232589400519")
      *             .build());
      * 
-     *         var testProjectIpAccessList = new ProjectIpAccessList("testProjectIpAccessList", ProjectIpAccessListArgs.builder()
-     *             .projectId("")
-     *             .awsSecurityGroup("sg-0026348ec11780bd1")
-     *             .comment("TestAcc for awsSecurityGroup")
-     *             .build(), CustomResourceOptions.builder()
-     *                 .dependsOn(testNetworkPeering)
-     *                 .build());
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
+     *                 .build())
+     *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()
-     *             .projectId(testProjectIpAccessList.projectId())
-     *             .awsSecurityGroup(testProjectIpAccessList.awsSecurityGroup())
+     *         // Set up push-based log export with authorized IAM role
+     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .bucketName(logBucket.bucket())
+     *             .iamRoleId(authRole.roleId())
+     *             .prefixPath("push-based-log-test")
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
+     *             .projectId(testPushBasedLogExport.projectId())
      *             .build());
      * 
+     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * > **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like in the above example. - * */ - public static CompletableFuture getProjectIpAccessListPlain(GetProjectIpAccessListPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList", TypeShape.of(GetProjectIpAccessListResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getPushBasedLogExportPlain(GetPushBasedLogExportPlainArgs args) { + return getPushBasedLogExportPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getProjects - * - * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created. + * ## # Data Source: mongodbatlas.PushBasedLogExport * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature. * * ## Example Usage * + * ### S * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -21308,12 +23391,17 @@ public static CompletableFuture getProjectIpAccess
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
      * import com.pulumi.mongodbatlas.Project;
      * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.PushBasedLogExport;
+     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21327,33 +23415,38 @@ public static CompletableFuture getProjectIpAccess
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
+     *             .name(atlasProjectName)
+     *             .orgId(atlasOrgId)
+     *             .build());
      * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
+     *         // Set up cloud provider access in Atlas using the created IAM role
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .providerName("AWS")
+     *             .build());
+     * 
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
      *                 .build())
      *             .build());
      * 
-     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
+     *         // Set up push-based log export with authorized IAM role
+     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .bucketName(logBucket.bucket())
+     *             .iamRoleId(authRole.roleId())
+     *             .prefixPath("push-based-log-test")
      *             .build());
      * 
+     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
+     *             .projectId(testPushBasedLogExport.projectId())
+     *             .build());
+     * 
+     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
      *     }
      * }
      * }
@@ -21361,18 +23454,17 @@ public static CompletableFuture getProjectIpAccess
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProjects() {
-        return getProjects(GetProjectsArgs.Empty, InvokeOptions.Empty);
+    public static Output getPushBasedLogExport(GetPushBasedLogExportArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getPushBasedLogExport:getPushBasedLogExport", TypeShape.of(GetPushBasedLogExportResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getProjects
-     * 
-     * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created.
+     * ## # Data Source: mongodbatlas.PushBasedLogExport
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21381,12 +23473,17 @@ public static Output getProjects() {
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
      * import com.pulumi.mongodbatlas.Project;
      * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
+     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
+     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
+     * import com.pulumi.mongodbatlas.PushBasedLogExport;
+     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
+     * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21400,33 +23497,38 @@ public static Output getProjects() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
+     *             .name(atlasProjectName)
+     *             .orgId(atlasOrgId)
+     *             .build());
+     * 
+     *         // Set up cloud provider access in Atlas using the created IAM role
+     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .providerName("AWS")
+     *             .build());
      * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
+     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .roleId(setupOnly.roleId())
+     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
+     *                 .iamAssumedRoleArn(testRole.arn())
      *                 .build())
      *             .build());
      * 
-     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
+     *         // Set up push-based log export with authorized IAM role
+     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
+     *             .projectId(project_tf.id())
+     *             .bucketName(logBucket.bucket())
+     *             .iamRoleId(authRole.roleId())
+     *             .prefixPath("push-based-log-test")
+     *             .build());
+     * 
+     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
+     *             .projectId(testPushBasedLogExport.projectId())
      *             .build());
      * 
+     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
      *     }
      * }
      * }
@@ -21434,18 +23536,17 @@ public static Output getProjects() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectsPlain() {
-        return getProjectsPlain(GetProjectsPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getPushBasedLogExportPlain(GetPushBasedLogExportPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPushBasedLogExport:getPushBasedLogExport", TypeShape.of(GetPushBasedLogExportResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getProjects
-     * 
-     * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created.
+     * ## # Data Source: mongodbatlas.getRolesOrgId
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
      * 
      * ## Example Usage
      * 
+     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21455,11 +23556,6 @@ public static CompletableFuture getProjectsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21475,31 +23571,7 @@ public static CompletableFuture getProjectsPlain() {
      *     public static void stack(Context ctx) {
      *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .build());
-     * 
+     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -21507,18 +23579,17 @@ public static CompletableFuture getProjectsPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProjects(GetProjectsArgs args) {
-        return getProjects(args, InvokeOptions.Empty);
+    public static Output getRolesOrgId() {
+        return getRolesOrgId(InvokeArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getProjects
-     * 
-     * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created.
+     * ## # Data Source: mongodbatlas.getRolesOrgId
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
      * 
      * ## Example Usage
      * 
+     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21528,11 +23599,6 @@ public static Output getProjects(GetProjectsArgs args)
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21548,31 +23614,7 @@ public static Output getProjects(GetProjectsArgs args)
      *     public static void stack(Context ctx) {
      *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .build());
-     * 
+     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -21580,18 +23622,17 @@ public static Output getProjects(GetProjectsArgs args)
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args) {
-        return getProjectsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getRolesOrgIdPlain() {
+        return getRolesOrgIdPlain(InvokeArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getProjects
-     * 
-     * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created.
+     * ## # Data Source: mongodbatlas.getRolesOrgId
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
      * 
      * ## Example Usage
      * 
+     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21601,11 +23642,6 @@ public static CompletableFuture getProjectsPlain(GetPro
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21621,31 +23657,7 @@ public static CompletableFuture getProjectsPlain(GetPro
      *     public static void stack(Context ctx) {
      *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .build());
-     * 
+     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -21653,18 +23665,17 @@ public static CompletableFuture getProjectsPlain(GetPro
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProjects(GetProjectsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getProjects:getProjects", TypeShape.of(GetProjectsInvokeResult.class), args, Utilities.withVersion(options));
+    public static Output getRolesOrgId(InvokeArgs args) {
+        return getRolesOrgId(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getProjects
-     * 
-     * `mongodbatlas.getProjects` describes all Projects. This represents projects that have been created.
+     * ## # Data Source: mongodbatlas.getRolesOrgId
      * 
-     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
+     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
      * 
      * ## Example Usage
      * 
+     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21674,11 +23685,6 @@ public static Output getProjects(GetProjectsArgs args,
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectTeamArgs;
-     * import com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;
-     * import com.pulumi.mongodbatlas.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21694,31 +23700,7 @@ public static Output getProjects(GetProjectsArgs args,
      *     public static void stack(Context ctx) {
      *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         var testProject = new Project("testProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()))
-     *             .teams(            
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e0fa8c99ccf641c722fe645")
-     *                     .roleNames("GROUP_OWNER")
-     *                     .build(),
-     *                 ProjectTeamArgs.builder()
-     *                     .teamId("5e1dd7b4f2a30ba80a70cd4rw")
-     *                     .roleNames(                    
-     *                         "GROUP_READ_ONLY",
-     *                         "GROUP_DATA_ACCESS_READ_WRITE")
-     *                     .build())
-     *             .limits(ProjectLimitArgs.builder()
-     *                 .name("atlas.project.deployment.clusters")
-     *                 .value(26)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()
-     *             .pageNum(1)
-     *             .itemsPerPage(5)
-     *             .build());
-     * 
+     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -21726,17 +23708,17 @@ public static Output getProjects(GetProjectsArgs args,
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getProjects:getProjects", TypeShape.of(GetProjectsInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getRolesOrgIdPlain(InvokeArgs args) {
+        return getRolesOrgIdPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.PushBasedLogExport
+     * ## # Data Source: mongodbatlas.getRolesOrgId
      * 
-     * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature.
+     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
      * 
      * ## Example Usage
      * 
-     * ### S
+     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21745,17 +23727,7 @@ public static CompletableFuture getProjectsPlain(GetPro
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
-     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
-     * import com.pulumi.mongodbatlas.PushBasedLogExport;
-     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21768,39 +23740,10 @@ public static CompletableFuture getProjectsPlain(GetPro
      *         Pulumi.run(App::stack);
      *     }
      * 
-     *     public static void stack(Context ctx) {
-     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
-     *             .name(atlasProjectName)
-     *             .orgId(atlasOrgId)
-     *             .build());
-     * 
-     *         // Set up cloud provider access in Atlas using the created IAM role
-     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .providerName("AWS")
-     *             .build());
-     * 
-     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .roleId(setupOnly.roleId())
-     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
-     *                 .iamAssumedRoleArn(testRole.arn())
-     *                 .build())
-     *             .build());
-     * 
-     *         // Set up push-based log export with authorized IAM role
-     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .bucketName(logBucket.bucket())
-     *             .iamRoleId(authRole.roleId())
-     *             .prefixPath("push-based-log-test")
-     *             .build());
-     * 
-     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
-     *             .projectId(testPushBasedLogExport.projectId())
-     *             .build());
-     * 
-     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
+     *     public static void stack(Context ctx) {
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     * 
+     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -21808,17 +23751,17 @@ public static CompletableFuture getProjectsPlain(GetPro
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getPushBasedLogExport(GetPushBasedLogExportArgs args) {
-        return getPushBasedLogExport(args, InvokeOptions.Empty);
+    public static Output getRolesOrgId(InvokeArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getRolesOrgId:getRolesOrgId", TypeShape.of(GetRolesOrgIdResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.PushBasedLogExport
+     * ## # Data Source: mongodbatlas.getRolesOrgId
      * 
-     * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature.
+     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
      * 
      * ## Example Usage
      * 
-     * ### S
+     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -21827,17 +23770,7 @@ public static Output getPushBasedLogExport(GetPushB
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
-     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
-     * import com.pulumi.mongodbatlas.PushBasedLogExport;
-     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21851,38 +23784,9 @@ public static Output getPushBasedLogExport(GetPushB
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
-     *             .name(atlasProjectName)
-     *             .orgId(atlasOrgId)
-     *             .build());
-     * 
-     *         // Set up cloud provider access in Atlas using the created IAM role
-     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .providerName("AWS")
-     *             .build());
-     * 
-     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .roleId(setupOnly.roleId())
-     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
-     *                 .iamAssumedRoleArn(testRole.arn())
-     *                 .build())
-     *             .build());
-     * 
-     *         // Set up push-based log export with authorized IAM role
-     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .bucketName(logBucket.bucket())
-     *             .iamRoleId(authRole.roleId())
-     *             .prefixPath("push-based-log-test")
-     *             .build());
-     * 
-     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
-     *             .projectId(testPushBasedLogExport.projectId())
-     *             .build());
+     *         final var test = MongodbatlasFunctions.getRolesOrgId();
      * 
-     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
+     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -21890,13 +23794,13 @@ public static Output getPushBasedLogExport(GetPushB
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getPushBasedLogExportPlain(GetPushBasedLogExportPlainArgs args) {
-        return getPushBasedLogExportPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getRolesOrgIdPlain(InvokeArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getRolesOrgId:getRolesOrgId", TypeShape.of(GetRolesOrgIdResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.PushBasedLogExport
+     * ## # Data Source: mongodbatlas.SearchDeployment
      * 
-     * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature.
+     * `mongodbatlas.SearchDeployment` describes a search node deployment.
      * 
      * ## Example Usage
      * 
@@ -21911,15 +23815,14 @@ public static CompletableFuture getPushBasedLogExpo
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.Project;
      * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
-     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
-     * import com.pulumi.mongodbatlas.PushBasedLogExport;
-     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
+     * import com.pulumi.mongodbatlas.SearchDeployment;
+     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -21933,38 +23836,43 @@ public static CompletableFuture getPushBasedLogExpo
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
-     *             .name(atlasProjectName)
-     *             .orgId(atlasOrgId)
-     *             .build());
-     * 
-     *         // Set up cloud provider access in Atlas using the created IAM role
-     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .providerName("AWS")
+     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(orgId)
      *             .build());
      * 
-     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .roleId(setupOnly.roleId())
-     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
-     *                 .iamAssumedRoleArn(testRole.arn())
+     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .name("ClusterExample")
+     *             .clusterType("REPLICASET")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .providerName("AWS")
+     *                     .priority(7)
+     *                     .regionName("US_EAST_1")
+     *                     .build())
      *                 .build())
      *             .build());
      * 
-     *         // Set up push-based log export with authorized IAM role
-     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .bucketName(logBucket.bucket())
-     *             .iamRoleId(authRole.roleId())
-     *             .prefixPath("push-based-log-test")
+     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .clusterName(exampleAdvancedCluster.name())
+     *             .specs(SearchDeploymentSpecArgs.builder()
+     *                 .instance_size("S20_HIGHCPU_NVME")
+     *                 .node_count(2)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
-     *             .projectId(testPushBasedLogExport.projectId())
+     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
+     *             .projectId(exampleSearchDeployment.projectId())
+     *             .clusterName(exampleSearchDeployment.clusterName())
      *             .build());
      * 
-     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
+     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -21972,13 +23880,13 @@ public static CompletableFuture getPushBasedLogExpo
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getPushBasedLogExport(GetPushBasedLogExportArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getPushBasedLogExport:getPushBasedLogExport", TypeShape.of(GetPushBasedLogExportResult.class), args, Utilities.withVersion(options));
+    public static Output getSearchDeployment(GetSearchDeploymentArgs args) {
+        return getSearchDeployment(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.PushBasedLogExport
+     * ## # Data Source: mongodbatlas.SearchDeployment
      * 
-     * `mongodbatlas.PushBasedLogExport` describes the configured project level settings for the push-based log export feature.
+     * `mongodbatlas.SearchDeployment` describes a search node deployment.
      * 
      * ## Example Usage
      * 
@@ -21993,15 +23901,14 @@ public static Output getPushBasedLogExport(GetPushB
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.Project;
      * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetup;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;
-     * import com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;
-     * import com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;
-     * import com.pulumi.mongodbatlas.PushBasedLogExport;
-     * import com.pulumi.mongodbatlas.PushBasedLogExportArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
+     * import com.pulumi.mongodbatlas.SearchDeployment;
+     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22015,38 +23922,43 @@ public static Output getPushBasedLogExport(GetPushB
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var project_tf = new Project("project-tf", ProjectArgs.builder()
-     *             .name(atlasProjectName)
-     *             .orgId(atlasOrgId)
-     *             .build());
-     * 
-     *         // Set up cloud provider access in Atlas using the created IAM role
-     *         var setupOnly = new CloudProviderAccessSetup("setupOnly", CloudProviderAccessSetupArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .providerName("AWS")
+     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(orgId)
      *             .build());
      * 
-     *         var authRole = new CloudProviderAccessAuthorization("authRole", CloudProviderAccessAuthorizationArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .roleId(setupOnly.roleId())
-     *             .aws(CloudProviderAccessAuthorizationAwsArgs.builder()
-     *                 .iamAssumedRoleArn(testRole.arn())
+     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .name("ClusterExample")
+     *             .clusterType("REPLICASET")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .providerName("AWS")
+     *                     .priority(7)
+     *                     .regionName("US_EAST_1")
+     *                     .build())
      *                 .build())
      *             .build());
      * 
-     *         // Set up push-based log export with authorized IAM role
-     *         var testPushBasedLogExport = new PushBasedLogExport("testPushBasedLogExport", PushBasedLogExportArgs.builder()
-     *             .projectId(project_tf.id())
-     *             .bucketName(logBucket.bucket())
-     *             .iamRoleId(authRole.roleId())
-     *             .prefixPath("push-based-log-test")
+     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .clusterName(exampleAdvancedCluster.name())
+     *             .specs(SearchDeploymentSpecArgs.builder()
+     *                 .instance_size("S20_HIGHCPU_NVME")
+     *                 .node_count(2)
+     *                 .build())
      *             .build());
      * 
-     *         final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()
-     *             .projectId(testPushBasedLogExport.projectId())
+     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
+     *             .projectId(exampleSearchDeployment.projectId())
+     *             .clusterName(exampleSearchDeployment.clusterName())
      *             .build());
      * 
-     *         ctx.export("test", test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult).applyValue(test -> test.applyValue(getPushBasedLogExportResult -> getPushBasedLogExportResult.prefixPath())));
+     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22054,17 +23966,17 @@ public static Output getPushBasedLogExport(GetPushB
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getPushBasedLogExportPlain(GetPushBasedLogExportPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getPushBasedLogExport:getPushBasedLogExport", TypeShape.of(GetPushBasedLogExportResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getSearchDeploymentPlain(GetSearchDeploymentPlainArgs args) {
+        return getSearchDeploymentPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getRolesOrgId
+     * ## # Data Source: mongodbatlas.SearchDeployment
      * 
-     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
+     * `mongodbatlas.SearchDeployment` describes a search node deployment.
      * 
      * ## Example Usage
      * 
-     * ### Using data source to query
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22073,7 +23985,16 @@ public static CompletableFuture getPushBasedLogExpo
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
+     * import com.pulumi.mongodbatlas.SearchDeployment;
+     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22087,9 +24008,43 @@ public static CompletableFuture getPushBasedLogExpo
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(orgId)
+     *             .build());
+     * 
+     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .name("ClusterExample")
+     *             .clusterType("REPLICASET")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .providerName("AWS")
+     *                     .priority(7)
+     *                     .regionName("US_EAST_1")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .clusterName(exampleAdvancedCluster.name())
+     *             .specs(SearchDeploymentSpecArgs.builder()
+     *                 .instance_size("S20_HIGHCPU_NVME")
+     *                 .node_count(2)
+     *                 .build())
+     *             .build());
      * 
-     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
+     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
+     *             .projectId(exampleSearchDeployment.projectId())
+     *             .clusterName(exampleSearchDeployment.clusterName())
+     *             .build());
+     * 
+     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22097,17 +24052,17 @@ public static CompletableFuture getPushBasedLogExpo
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getRolesOrgId() {
-        return getRolesOrgId(InvokeArgs.Empty, InvokeOptions.Empty);
+    public static Output getSearchDeployment(GetSearchDeploymentArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getSearchDeployment:getSearchDeployment", TypeShape.of(GetSearchDeploymentResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getRolesOrgId
+     * ## # Data Source: mongodbatlas.SearchDeployment
      * 
-     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
+     * `mongodbatlas.SearchDeployment` describes a search node deployment.
      * 
      * ## Example Usage
      * 
-     * ### Using data source to query
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22116,7 +24071,16 @@ public static Output getRolesOrgId() {
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.Project;
+     * import com.pulumi.mongodbatlas.ProjectArgs;
+     * import com.pulumi.mongodbatlas.AdvancedCluster;
+     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
+     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
+     * import com.pulumi.mongodbatlas.SearchDeployment;
+     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22130,9 +24094,43 @@ public static Output getRolesOrgId() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
+     *             .name("project-name")
+     *             .orgId(orgId)
+     *             .build());
      * 
-     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
+     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .name("ClusterExample")
+     *             .clusterType("REPLICASET")
+     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
+     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
+     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
+     *                         .instanceSize("M10")
+     *                         .nodeCount(3)
+     *                         .build())
+     *                     .providerName("AWS")
+     *                     .priority(7)
+     *                     .regionName("US_EAST_1")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
+     *             .projectId(exampleProject.id())
+     *             .clusterName(exampleAdvancedCluster.name())
+     *             .specs(SearchDeploymentSpecArgs.builder()
+     *                 .instance_size("S20_HIGHCPU_NVME")
+     *                 .node_count(2)
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
+     *             .projectId(exampleSearchDeployment.projectId())
+     *             .clusterName(exampleSearchDeployment.clusterName())
+     *             .build());
+     * 
+     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22140,17 +24138,18 @@ public static Output getRolesOrgId() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRolesOrgIdPlain() {
-        return getRolesOrgIdPlain(InvokeArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getSearchDeploymentPlain(GetSearchDeploymentPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSearchDeployment:getSearchDeployment", TypeShape.of(GetSearchDeploymentResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getRolesOrgId
+     * ## # Data Source: mongodbatlas.SearchIndex
      * 
-     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
+     * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22160,6 +24159,7 @@ public static CompletableFuture getRolesOrgIdPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22173,9 +24173,12 @@ public static CompletableFuture getRolesOrgIdPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
+     *             .indexId("")
+     *             .clusterName("")
+     *             .build());
      * 
-     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -22183,17 +24186,18 @@ public static CompletableFuture getRolesOrgIdPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getRolesOrgId(InvokeArgs args) {
-        return getRolesOrgId(args, InvokeOptions.Empty);
+    public static Output getSearchIndex(GetSearchIndexArgs args) {
+        return getSearchIndex(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getRolesOrgId
+     * ## # Data Source: mongodbatlas.SearchIndex
      * 
-     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
+     * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22203,6 +24207,7 @@ public static Output getRolesOrgId(InvokeArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22216,9 +24221,12 @@ public static Output getRolesOrgId(InvokeArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
+     *             .indexId("")
+     *             .clusterName("")
+     *             .build());
      * 
-     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -22226,17 +24234,18 @@ public static Output getRolesOrgId(InvokeArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRolesOrgIdPlain(InvokeArgs args) {
-        return getRolesOrgIdPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getSearchIndexPlain(GetSearchIndexPlainArgs args) {
+        return getSearchIndexPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getRolesOrgId
+     * ## # Data Source: mongodbatlas.SearchIndex
      * 
-     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
+     * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22246,6 +24255,7 @@ public static CompletableFuture getRolesOrgIdPlain(InvokeAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22259,9 +24269,12 @@ public static CompletableFuture getRolesOrgIdPlain(InvokeAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
+     *             .indexId("")
+     *             .clusterName("")
+     *             .build());
      * 
-     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -22269,17 +24282,18 @@ public static CompletableFuture getRolesOrgIdPlain(InvokeAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getRolesOrgId(InvokeArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getRolesOrgId:getRolesOrgId", TypeShape.of(GetRolesOrgIdResult.class), args, Utilities.withVersion(options));
+    public static Output getSearchIndex(GetSearchIndexArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getSearchIndex:getSearchIndex", TypeShape.of(GetSearchIndexResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getRolesOrgId
+     * ## # Data Source: mongodbatlas.SearchIndex
      * 
-     * `mongodbatlas.getRolesOrgId` describes a MongoDB Atlas Roles Org ID. This represents a Roles Org ID.
+     * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### Using data source to query
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22289,6 +24303,7 @@ public static Output getRolesOrgId(InvokeArgs args, InvokeO
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22302,9 +24317,12 @@ public static Output getRolesOrgId(InvokeArgs args, InvokeO
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getRolesOrgId();
+     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
+     *             .indexId("")
+     *             .clusterName("")
+     *             .build());
      * 
-     *         ctx.export("orgId", test.applyValue(getRolesOrgIdResult -> getRolesOrgIdResult.orgId()));
      *     }
      * }
      * }
@@ -22312,17 +24330,18 @@ public static Output getRolesOrgId(InvokeArgs args, InvokeO
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRolesOrgIdPlain(InvokeArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getRolesOrgId:getRolesOrgId", TypeShape.of(GetRolesOrgIdResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getSearchIndexPlain(GetSearchIndexPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSearchIndex:getSearchIndex", TypeShape.of(GetSearchIndexResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.SearchDeployment
+     * ## # Data Source: mongodbatlas.getSearchIndexes
      * 
-     * `mongodbatlas.SearchDeployment` describes a search node deployment.
+     * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22331,16 +24350,8 @@ public static CompletableFuture getRolesOrgIdPlain(InvokeAr
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.AdvancedCluster;
-     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
-     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
-     * import com.pulumi.mongodbatlas.SearchDeployment;
-     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
-     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22354,43 +24365,13 @@ public static CompletableFuture getRolesOrgIdPlain(InvokeAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(orgId)
-     *             .build());
-     * 
-     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .name("ClusterExample")
-     *             .clusterType("REPLICASET")
-     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
-     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
-     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
-     *                         .instanceSize("M10")
-     *                         .nodeCount(3)
-     *                         .build())
-     *                     .providerName("AWS")
-     *                     .priority(7)
-     *                     .regionName("US_EAST_1")
-     *                     .build())
-     *                 .build())
-     *             .build());
-     * 
-     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .clusterName(exampleAdvancedCluster.name())
-     *             .specs(SearchDeploymentSpecArgs.builder()
-     *                 .instance_size("S20_HIGHCPU_NVME")
-     *                 .node_count(2)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
-     *             .projectId(exampleSearchDeployment.projectId())
-     *             .clusterName(exampleSearchDeployment.clusterName())
+     *         final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder()
+     *             .projectId("")
+     *             .clusterName("")
+     *             .databaseName("")
+     *             .collectionName("")
      *             .build());
      * 
-     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22398,17 +24379,18 @@ public static CompletableFuture getRolesOrgIdPlain(InvokeAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSearchDeployment(GetSearchDeploymentArgs args) {
-        return getSearchDeployment(args, InvokeOptions.Empty);
+    public static Output getSearchIndexes(GetSearchIndexesArgs args) {
+        return getSearchIndexes(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.SearchDeployment
+     * ## # Data Source: mongodbatlas.getSearchIndexes
      * 
-     * `mongodbatlas.SearchDeployment` describes a search node deployment.
+     * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22417,16 +24399,8 @@ public static Output getSearchDeployment(GetSearchDep
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.AdvancedCluster;
-     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
-     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
-     * import com.pulumi.mongodbatlas.SearchDeployment;
-     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
-     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22436,47 +24410,17 @@ public static Output getSearchDeployment(GetSearchDep
      * 
      * public class App {
      *     public static void main(String[] args) {
-     *         Pulumi.run(App::stack);
-     *     }
-     * 
-     *     public static void stack(Context ctx) {
-     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(orgId)
-     *             .build());
-     * 
-     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .name("ClusterExample")
-     *             .clusterType("REPLICASET")
-     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
-     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
-     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
-     *                         .instanceSize("M10")
-     *                         .nodeCount(3)
-     *                         .build())
-     *                     .providerName("AWS")
-     *                     .priority(7)
-     *                     .regionName("US_EAST_1")
-     *                     .build())
-     *                 .build())
-     *             .build());
-     * 
-     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .clusterName(exampleAdvancedCluster.name())
-     *             .specs(SearchDeploymentSpecArgs.builder()
-     *                 .instance_size("S20_HIGHCPU_NVME")
-     *                 .node_count(2)
-     *                 .build())
-     *             .build());
+     *         Pulumi.run(App::stack);
+     *     }
      * 
-     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
-     *             .projectId(exampleSearchDeployment.projectId())
-     *             .clusterName(exampleSearchDeployment.clusterName())
+     *     public static void stack(Context ctx) {
+     *         final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder()
+     *             .projectId("")
+     *             .clusterName("")
+     *             .databaseName("")
+     *             .collectionName("")
      *             .build());
      * 
-     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22484,17 +24428,18 @@ public static Output getSearchDeployment(GetSearchDep
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSearchDeploymentPlain(GetSearchDeploymentPlainArgs args) {
-        return getSearchDeploymentPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getSearchIndexesPlain(GetSearchIndexesPlainArgs args) {
+        return getSearchIndexesPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.SearchDeployment
+     * ## # Data Source: mongodbatlas.getSearchIndexes
      * 
-     * `mongodbatlas.SearchDeployment` describes a search node deployment.
+     * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22503,16 +24448,8 @@ public static CompletableFuture getSearchDeploymentPl
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.AdvancedCluster;
-     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
-     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
-     * import com.pulumi.mongodbatlas.SearchDeployment;
-     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
-     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22526,43 +24463,13 @@ public static CompletableFuture getSearchDeploymentPl
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(orgId)
-     *             .build());
-     * 
-     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .name("ClusterExample")
-     *             .clusterType("REPLICASET")
-     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
-     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
-     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
-     *                         .instanceSize("M10")
-     *                         .nodeCount(3)
-     *                         .build())
-     *                     .providerName("AWS")
-     *                     .priority(7)
-     *                     .regionName("US_EAST_1")
-     *                     .build())
-     *                 .build())
-     *             .build());
-     * 
-     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .clusterName(exampleAdvancedCluster.name())
-     *             .specs(SearchDeploymentSpecArgs.builder()
-     *                 .instance_size("S20_HIGHCPU_NVME")
-     *                 .node_count(2)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
-     *             .projectId(exampleSearchDeployment.projectId())
-     *             .clusterName(exampleSearchDeployment.clusterName())
+     *         final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder()
+     *             .projectId("")
+     *             .clusterName("")
+     *             .databaseName("")
+     *             .collectionName("")
      *             .build());
      * 
-     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22570,17 +24477,18 @@ public static CompletableFuture getSearchDeploymentPl
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSearchDeployment(GetSearchDeploymentArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getSearchDeployment:getSearchDeployment", TypeShape.of(GetSearchDeploymentResult.class), args, Utilities.withVersion(options));
+    public static Output getSearchIndexes(GetSearchIndexesArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getSearchIndexes:getSearchIndexes", TypeShape.of(GetSearchIndexesInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.SearchDeployment
+     * ## # Data Source: mongodbatlas.getSearchIndexes
      * 
-     * `mongodbatlas.SearchDeployment` describes a search node deployment.
+     * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created.
+     * 
+     * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
-     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22589,16 +24497,8 @@ public static Output getSearchDeployment(GetSearchDep
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
-     * import com.pulumi.mongodbatlas.Project;
-     * import com.pulumi.mongodbatlas.ProjectArgs;
-     * import com.pulumi.mongodbatlas.AdvancedCluster;
-     * import com.pulumi.mongodbatlas.AdvancedClusterArgs;
-     * import com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;
-     * import com.pulumi.mongodbatlas.SearchDeployment;
-     * import com.pulumi.mongodbatlas.SearchDeploymentArgs;
-     * import com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22612,43 +24512,13 @@ public static Output getSearchDeployment(GetSearchDep
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
-     *             .name("project-name")
-     *             .orgId(orgId)
-     *             .build());
-     * 
-     *         var exampleAdvancedCluster = new AdvancedCluster("exampleAdvancedCluster", AdvancedClusterArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .name("ClusterExample")
-     *             .clusterType("REPLICASET")
-     *             .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()
-     *                 .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()
-     *                     .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()
-     *                         .instanceSize("M10")
-     *                         .nodeCount(3)
-     *                         .build())
-     *                     .providerName("AWS")
-     *                     .priority(7)
-     *                     .regionName("US_EAST_1")
-     *                     .build())
-     *                 .build())
-     *             .build());
-     * 
-     *         var exampleSearchDeployment = new SearchDeployment("exampleSearchDeployment", SearchDeploymentArgs.builder()
-     *             .projectId(exampleProject.id())
-     *             .clusterName(exampleAdvancedCluster.name())
-     *             .specs(SearchDeploymentSpecArgs.builder()
-     *                 .instance_size("S20_HIGHCPU_NVME")
-     *                 .node_count(2)
-     *                 .build())
-     *             .build());
-     * 
-     *         final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()
-     *             .projectId(exampleSearchDeployment.projectId())
-     *             .clusterName(exampleSearchDeployment.clusterName())
+     *         final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder()
+     *             .projectId("")
+     *             .clusterName("")
+     *             .databaseName("")
+     *             .collectionName("")
      *             .build());
      * 
-     *         ctx.export("mongodbatlasSearchDeploymentId", example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult).applyValue(example -> example.applyValue(getSearchDeploymentResult -> getSearchDeploymentResult.id())));
      *     }
      * }
      * }
@@ -22656,18 +24526,21 @@ public static Output getSearchDeployment(GetSearchDep
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSearchDeploymentPlain(GetSearchDeploymentPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSearchDeployment:getSearchDeployment", TypeShape.of(GetSearchDeploymentResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getSearchIndexesPlain(GetSearchIndexesPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSearchIndexes:getSearchIndexes", TypeShape.of(GetSearchIndexesInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.SearchIndex
+     * ## # Data Source: mongodbatlas.ServerlessInstance
      * 
-     * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created.
+     * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created.
+     * > **NOTE:**  Serverless instances do not support some Atlas features at this time.
+     * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/).
      * 
      * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
      * 
      * ## Example Usage
      * 
+     * ### Basic
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -22677,7 +24550,7 @@ public static CompletableFuture getSearchDeploymentPl
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22691,10 +24564,9 @@ public static CompletableFuture getSearchDeploymentPl
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
-     *             .indexId("")
-     *             .clusterName("")
+     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
+     *             .name("")
+     *             .projectId("")
      *             .build());
      * 
      *     }
@@ -22703,19 +24575,31 @@ public static CompletableFuture getSearchDeploymentPl
      * 
* <!--End PulumiCodeChooser --> * + * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ + * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ + * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. + * + * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ + * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. + * + * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` + * */ - public static Output getSearchIndex(GetSearchIndexArgs args) { - return getSearchIndex(args, InvokeOptions.Empty); + public static Output getServerlessInstance(GetServerlessInstanceArgs args) { + return getServerlessInstance(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.SearchIndex + * ## # Data Source: mongodbatlas.ServerlessInstance * - * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created. + * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * * ## Example Usage * + * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -22725,7 +24609,7 @@ public static Output getSearchIndex(GetSearchIndexArgs arg
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22739,10 +24623,9 @@ public static Output getSearchIndex(GetSearchIndexArgs arg
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
-     *             .indexId("")
-     *             .clusterName("")
+     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
+     *             .name("")
+     *             .projectId("")
      *             .build());
      * 
      *     }
@@ -22751,19 +24634,31 @@ public static Output getSearchIndex(GetSearchIndexArgs arg
      * 
* <!--End PulumiCodeChooser --> * + * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ + * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ + * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. + * + * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ + * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. + * + * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` + * */ - public static CompletableFuture getSearchIndexPlain(GetSearchIndexPlainArgs args) { - return getSearchIndexPlain(args, InvokeOptions.Empty); + public static CompletableFuture getServerlessInstancePlain(GetServerlessInstancePlainArgs args) { + return getServerlessInstancePlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.SearchIndex + * ## # Data Source: mongodbatlas.ServerlessInstance * - * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created. + * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * * ## Example Usage * + * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -22773,7 +24668,7 @@ public static CompletableFuture getSearchIndexPlain(GetSea
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22787,10 +24682,9 @@ public static CompletableFuture getSearchIndexPlain(GetSea
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
-     *             .indexId("")
-     *             .clusterName("")
+     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
+     *             .name("")
+     *             .projectId("")
      *             .build());
      * 
      *     }
@@ -22799,19 +24693,31 @@ public static CompletableFuture getSearchIndexPlain(GetSea
      * 
* <!--End PulumiCodeChooser --> * + * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ + * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ + * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. + * + * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ + * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. + * + * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` + * */ - public static Output getSearchIndex(GetSearchIndexArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getSearchIndex:getSearchIndex", TypeShape.of(GetSearchIndexResult.class), args, Utilities.withVersion(options)); + public static Output getServerlessInstance(GetServerlessInstanceArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getServerlessInstance:getServerlessInstance", TypeShape.of(GetServerlessInstanceResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.SearchIndex + * ## # Data Source: mongodbatlas.ServerlessInstance * - * `mongodbatlas.SearchIndex` describes a single search indexes. This represents a single search index that have been created. + * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * * ## Example Usage * + * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -22821,7 +24727,7 @@ public static Output getSearchIndex(GetSearchIndexArgs arg
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -22835,10 +24741,9 @@ public static Output getSearchIndex(GetSearchIndexArgs arg
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()
-     *             .indexId("")
-     *             .clusterName("")
+     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
+     *             .name("")
+     *             .projectId("")
      *             .build());
      * 
      *     }
@@ -22847,14 +24752,26 @@ public static Output getSearchIndex(GetSearchIndexArgs arg
      * 
* <!--End PulumiCodeChooser --> * + * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ + * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ + * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. + * + * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ + * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. + * + * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` + * */ - public static CompletableFuture getSearchIndexPlain(GetSearchIndexPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSearchIndex:getSearchIndex", TypeShape.of(GetSearchIndexResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getServerlessInstancePlain(GetServerlessInstancePlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getServerlessInstance:getServerlessInstance", TypeShape.of(GetServerlessInstanceResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getSearchIndexes + * ## # Data Source: mongodbatlas.getServerlessInstances * - * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created. + * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. + * + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * @@ -22869,7 +24786,7 @@ public static CompletableFuture getSearchIndexPlain(GetSea * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs; + * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -22883,11 +24800,8 @@ public static CompletableFuture getSearchIndexPlain(GetSea * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder() - * .projectId("") - * .clusterName("") - * .databaseName("") - * .collectionName("") + * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() + * .projectId(" getSearchIndexPlain(GetSea * <!--End PulumiCodeChooser --> * */ - public static Output getSearchIndexes(GetSearchIndexesArgs args) { - return getSearchIndexes(args, InvokeOptions.Empty); + public static Output getServerlessInstances(GetServerlessInstancesArgs args) { + return getServerlessInstances(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getSearchIndexes + * ## # Data Source: mongodbatlas.getServerlessInstances * - * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created. + * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. + * + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * @@ -22918,7 +24835,7 @@ public static Output getSearchIndexes(GetSearchInd * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs; + * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -22932,11 +24849,8 @@ public static Output getSearchIndexes(GetSearchInd * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder() - * .projectId("") - * .clusterName("") - * .databaseName("") - * .collectionName("") + * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() + * .projectId(" getSearchIndexes(GetSearchInd * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getSearchIndexesPlain(GetSearchIndexesPlainArgs args) { - return getSearchIndexesPlain(args, InvokeOptions.Empty); + public static CompletableFuture getServerlessInstancesPlain(GetServerlessInstancesPlainArgs args) { + return getServerlessInstancesPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getSearchIndexes + * ## # Data Source: mongodbatlas.getServerlessInstances * - * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created. + * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. + * + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * @@ -22967,7 +24884,7 @@ public static CompletableFuture getSearchIndexesPl * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs; + * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -22981,11 +24898,8 @@ public static CompletableFuture getSearchIndexesPl * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder() - * .projectId("") - * .clusterName("") - * .databaseName("") - * .collectionName("") + * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() + * .projectId(" getSearchIndexesPl * <!--End PulumiCodeChooser --> * */ - public static Output getSearchIndexes(GetSearchIndexesArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getSearchIndexes:getSearchIndexes", TypeShape.of(GetSearchIndexesInvokeResult.class), args, Utilities.withVersion(options)); + public static Output getServerlessInstances(GetServerlessInstancesArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getServerlessInstances:getServerlessInstances", TypeShape.of(GetServerlessInstancesInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getSearchIndexes + * ## # Data Source: mongodbatlas.getServerlessInstances * - * `mongodbatlas.getSearchIndexes` describes all search indexes. This represents search indexes that have been created. + * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. + * + * > **NOTE:** Serverless instances do not support some Atlas features at this time. + * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). * * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. * @@ -23016,7 +24933,7 @@ public static Output getSearchIndexes(GetSearchInd * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetSearchIndexesArgs; + * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23030,11 +24947,8 @@ public static Output getSearchIndexes(GetSearchInd * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getSearchIndexes(GetSearchIndexesArgs.builder() - * .projectId("") - * .clusterName("") - * .databaseName("") - * .collectionName("") + * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() + * .projectId(" getSearchIndexes(GetSearchInd * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getSearchIndexesPlain(GetSearchIndexesPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSearchIndexes:getSearchIndexes", TypeShape.of(GetSearchIndexesInvokeResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getServerlessInstancesPlain(GetServerlessInstancesPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getServerlessInstances:getServerlessInstances", TypeShape.of(GetServerlessInstancesInvokeResult.class), args, Utilities.withVersion(options)); + } + public static Output getSharedTierRestoreJob(GetSharedTierRestoreJobArgs args) { + return getSharedTierRestoreJob(args, InvokeOptions.Empty); + } + public static CompletableFuture getSharedTierRestoreJobPlain(GetSharedTierRestoreJobPlainArgs args) { + return getSharedTierRestoreJobPlain(args, InvokeOptions.Empty); + } + public static Output getSharedTierRestoreJob(GetSharedTierRestoreJobArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierRestoreJob:getSharedTierRestoreJob", TypeShape.of(GetSharedTierRestoreJobResult.class), args, Utilities.withVersion(options)); + } + public static CompletableFuture getSharedTierRestoreJobPlain(GetSharedTierRestoreJobPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierRestoreJob:getSharedTierRestoreJob", TypeShape.of(GetSharedTierRestoreJobResult.class), args, Utilities.withVersion(options)); + } + public static Output getSharedTierRestoreJobs(GetSharedTierRestoreJobsArgs args) { + return getSharedTierRestoreJobs(args, InvokeOptions.Empty); + } + public static CompletableFuture getSharedTierRestoreJobsPlain(GetSharedTierRestoreJobsPlainArgs args) { + return getSharedTierRestoreJobsPlain(args, InvokeOptions.Empty); + } + public static Output getSharedTierRestoreJobs(GetSharedTierRestoreJobsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierRestoreJobs:getSharedTierRestoreJobs", TypeShape.of(GetSharedTierRestoreJobsInvokeResult.class), args, Utilities.withVersion(options)); + } + public static CompletableFuture getSharedTierRestoreJobsPlain(GetSharedTierRestoreJobsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierRestoreJobs:getSharedTierRestoreJobs", TypeShape.of(GetSharedTierRestoreJobsInvokeResult.class), args, Utilities.withVersion(options)); + } + public static Output getSharedTierSnapshot(GetSharedTierSnapshotArgs args) { + return getSharedTierSnapshot(args, InvokeOptions.Empty); + } + public static CompletableFuture getSharedTierSnapshotPlain(GetSharedTierSnapshotPlainArgs args) { + return getSharedTierSnapshotPlain(args, InvokeOptions.Empty); + } + public static Output getSharedTierSnapshot(GetSharedTierSnapshotArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierSnapshot:getSharedTierSnapshot", TypeShape.of(GetSharedTierSnapshotResult.class), args, Utilities.withVersion(options)); + } + public static CompletableFuture getSharedTierSnapshotPlain(GetSharedTierSnapshotPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierSnapshot:getSharedTierSnapshot", TypeShape.of(GetSharedTierSnapshotResult.class), args, Utilities.withVersion(options)); + } + public static Output getSharedTierSnapshots(GetSharedTierSnapshotsArgs args) { + return getSharedTierSnapshots(args, InvokeOptions.Empty); + } + public static CompletableFuture getSharedTierSnapshotsPlain(GetSharedTierSnapshotsPlainArgs args) { + return getSharedTierSnapshotsPlain(args, InvokeOptions.Empty); + } + public static Output getSharedTierSnapshots(GetSharedTierSnapshotsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierSnapshots:getSharedTierSnapshots", TypeShape.of(GetSharedTierSnapshotsInvokeResult.class), args, Utilities.withVersion(options)); + } + public static CompletableFuture getSharedTierSnapshotsPlain(GetSharedTierSnapshotsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierSnapshots:getSharedTierSnapshots", TypeShape.of(GetSharedTierSnapshotsInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.ServerlessInstance - * - * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.StreamConnection * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.StreamConnection` describes a stream connection. * * ## Example Usage * - * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -23068,7 +25025,7 @@ public static CompletableFuture getSearchIndexesPl
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -23082,9 +25039,10 @@ public static CompletableFuture getSearchIndexesPl
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
-     *             .name("")
-     *             .projectId("")
+     *         final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder()
+     *             .projectId("")
+     *             .instanceName("")
+     *             .connectionName("")
      *             .build());
      * 
      *     }
@@ -23093,31 +25051,17 @@ public static CompletableFuture getSearchIndexesPl
      * 
* <!--End PulumiCodeChooser --> * - * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ - * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ - * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. - * - * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ - * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. - * - * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` - * */ - public static Output getServerlessInstance(GetServerlessInstanceArgs args) { - return getServerlessInstance(args, InvokeOptions.Empty); + public static Output getStreamConnection(GetStreamConnectionArgs args) { + return getStreamConnection(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.ServerlessInstance - * - * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.StreamConnection * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.StreamConnection` describes a stream connection. * * ## Example Usage * - * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -23127,7 +25071,7 @@ public static Output getServerlessInstance(GetServe
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -23141,9 +25085,10 @@ public static Output getServerlessInstance(GetServe
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
-     *             .name("")
-     *             .projectId("")
+     *         final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder()
+     *             .projectId("")
+     *             .instanceName("")
+     *             .connectionName("")
      *             .build());
      * 
      *     }
@@ -23152,31 +25097,17 @@ public static Output getServerlessInstance(GetServe
      * 
* <!--End PulumiCodeChooser --> * - * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ - * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ - * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. - * - * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ - * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. - * - * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` - * */ - public static CompletableFuture getServerlessInstancePlain(GetServerlessInstancePlainArgs args) { - return getServerlessInstancePlain(args, InvokeOptions.Empty); + public static CompletableFuture getStreamConnectionPlain(GetStreamConnectionPlainArgs args) { + return getStreamConnectionPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.ServerlessInstance - * - * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.StreamConnection * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.StreamConnection` describes a stream connection. * * ## Example Usage * - * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -23186,7 +25117,7 @@ public static CompletableFuture getServerlessInstan
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -23200,9 +25131,10 @@ public static CompletableFuture getServerlessInstan
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
-     *             .name("")
-     *             .projectId("")
+     *         final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder()
+     *             .projectId("")
+     *             .instanceName("")
+     *             .connectionName("")
      *             .build());
      * 
      *     }
@@ -23211,31 +25143,17 @@ public static CompletableFuture getServerlessInstan
      * 
* <!--End PulumiCodeChooser --> * - * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ - * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ - * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. - * - * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ - * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. - * - * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` - * */ - public static Output getServerlessInstance(GetServerlessInstanceArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getServerlessInstance:getServerlessInstance", TypeShape.of(GetServerlessInstanceResult.class), args, Utilities.withVersion(options)); + public static Output getStreamConnection(GetStreamConnectionArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getStreamConnection:getStreamConnection", TypeShape.of(GetStreamConnectionResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.ServerlessInstance - * - * `mongodbatlas.ServerlessInstance` describes a single serverless instance. This represents a single serverless instance that have been created. - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.StreamConnection * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.StreamConnection` describes a stream connection. * * ## Example Usage * - * ### Basic * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -23245,7 +25163,7 @@ public static Output getServerlessInstance(GetServe
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -23259,9 +25177,10 @@ public static Output getServerlessInstance(GetServe
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()
-     *             .name("")
-     *             .projectId("")
+     *         final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder()
+     *             .projectId("")
+     *             .instanceName("")
+     *             .connectionName("")
      *             .build());
      * 
      *     }
@@ -23270,28 +25189,14 @@ public static Output getServerlessInstance(GetServe
      * 
* <!--End PulumiCodeChooser --> * - * **NOTE:** `mongodbatlas.ServerlessInstance` and `mongodbatlas.PrivatelinkEndpointServiceServerless` resources have a circular dependency in some respects.\ - * That is, the `serverless_instance` must exist before the `privatelink_endpoint_service` can be created,\ - * and the `privatelink_endpoint_service` must exist before the `serverless_instance` gets its respective `connection_strings_private_endpoint_srv` values. - * - * Because of this, the `serverless_instance` data source has particular value as a source of the `connection_strings_private_endpoint_srv`.\ - * When using the data_source in-tandem with the afforementioned resources, we can create and retrieve the `connection_strings_private_endpoint_srv` in a single `pulumi up`. - * - * Follow this example to setup private connection to a serverless instance using aws vpc and get the connection strings in a single `pulumi up` - * */ - public static CompletableFuture getServerlessInstancePlain(GetServerlessInstancePlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getServerlessInstance:getServerlessInstance", TypeShape.of(GetServerlessInstanceResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getStreamConnectionPlain(GetStreamConnectionPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamConnection:getStreamConnection", TypeShape.of(GetStreamConnectionResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getServerlessInstances - * - * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. - * - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.getStreamConnections * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. * * ## Example Usage * @@ -23304,7 +25209,7 @@ public static CompletableFuture getServerlessInstan * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23318,8 +25223,9 @@ public static CompletableFuture getServerlessInstan * } * * public static void stack(Context ctx) { - * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() - * .projectId("") + * .instanceName("") * .build()); * * } @@ -23329,18 +25235,13 @@ public static CompletableFuture getServerlessInstan * <!--End PulumiCodeChooser --> * */ - public static Output getServerlessInstances(GetServerlessInstancesArgs args) { - return getServerlessInstances(args, InvokeOptions.Empty); + public static Output getStreamConnections(GetStreamConnectionsArgs args) { + return getStreamConnections(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getServerlessInstances - * - * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. - * - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.getStreamConnections * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. * * ## Example Usage * @@ -23353,7 +25254,7 @@ public static Output getServerlessInstances( * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23367,8 +25268,9 @@ public static Output getServerlessInstances( * } * * public static void stack(Context ctx) { - * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() - * .projectId("") + * .instanceName("") * .build()); * * } @@ -23378,18 +25280,13 @@ public static Output getServerlessInstances( * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getServerlessInstancesPlain(GetServerlessInstancesPlainArgs args) { - return getServerlessInstancesPlain(args, InvokeOptions.Empty); + public static CompletableFuture getStreamConnectionsPlain(GetStreamConnectionsPlainArgs args) { + return getStreamConnectionsPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getServerlessInstances - * - * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. - * - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.getStreamConnections * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. * * ## Example Usage * @@ -23402,7 +25299,7 @@ public static CompletableFuture getServerles * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23416,8 +25313,9 @@ public static CompletableFuture getServerles * } * * public static void stack(Context ctx) { - * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() - * .projectId("") + * .instanceName("") * .build()); * * } @@ -23427,18 +25325,13 @@ public static CompletableFuture getServerles * <!--End PulumiCodeChooser --> * */ - public static Output getServerlessInstances(GetServerlessInstancesArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getServerlessInstances:getServerlessInstances", TypeShape.of(GetServerlessInstancesInvokeResult.class), args, Utilities.withVersion(options)); + public static Output getStreamConnections(GetStreamConnectionsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getStreamConnections:getStreamConnections", TypeShape.of(GetStreamConnectionsInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getServerlessInstances - * - * `mongodbatlas.getServerlessInstances` describes all serverless instances. This represents serverless instances that have been created for the specified group id. - * - * > **NOTE:** Serverless instances do not support some Atlas features at this time. - * For a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/). + * ## # Data Source: mongodbatlas.getStreamConnections * - * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. * * ## Example Usage * @@ -23451,7 +25344,7 @@ public static Output getServerlessInstances( * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23465,8 +25358,9 @@ public static Output getServerlessInstances( * } * * public static void stack(Context ctx) { - * final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder() - * .projectId("") + * .instanceName("") * .build()); * * } @@ -23476,61 +25370,13 @@ public static Output getServerlessInstances( * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getServerlessInstancesPlain(GetServerlessInstancesPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getServerlessInstances:getServerlessInstances", TypeShape.of(GetServerlessInstancesInvokeResult.class), args, Utilities.withVersion(options)); - } - public static Output getSharedTierRestoreJob(GetSharedTierRestoreJobArgs args) { - return getSharedTierRestoreJob(args, InvokeOptions.Empty); - } - public static CompletableFuture getSharedTierRestoreJobPlain(GetSharedTierRestoreJobPlainArgs args) { - return getSharedTierRestoreJobPlain(args, InvokeOptions.Empty); - } - public static Output getSharedTierRestoreJob(GetSharedTierRestoreJobArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierRestoreJob:getSharedTierRestoreJob", TypeShape.of(GetSharedTierRestoreJobResult.class), args, Utilities.withVersion(options)); - } - public static CompletableFuture getSharedTierRestoreJobPlain(GetSharedTierRestoreJobPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierRestoreJob:getSharedTierRestoreJob", TypeShape.of(GetSharedTierRestoreJobResult.class), args, Utilities.withVersion(options)); - } - public static Output getSharedTierRestoreJobs(GetSharedTierRestoreJobsArgs args) { - return getSharedTierRestoreJobs(args, InvokeOptions.Empty); - } - public static CompletableFuture getSharedTierRestoreJobsPlain(GetSharedTierRestoreJobsPlainArgs args) { - return getSharedTierRestoreJobsPlain(args, InvokeOptions.Empty); - } - public static Output getSharedTierRestoreJobs(GetSharedTierRestoreJobsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierRestoreJobs:getSharedTierRestoreJobs", TypeShape.of(GetSharedTierRestoreJobsInvokeResult.class), args, Utilities.withVersion(options)); - } - public static CompletableFuture getSharedTierRestoreJobsPlain(GetSharedTierRestoreJobsPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierRestoreJobs:getSharedTierRestoreJobs", TypeShape.of(GetSharedTierRestoreJobsInvokeResult.class), args, Utilities.withVersion(options)); - } - public static Output getSharedTierSnapshot(GetSharedTierSnapshotArgs args) { - return getSharedTierSnapshot(args, InvokeOptions.Empty); - } - public static CompletableFuture getSharedTierSnapshotPlain(GetSharedTierSnapshotPlainArgs args) { - return getSharedTierSnapshotPlain(args, InvokeOptions.Empty); - } - public static Output getSharedTierSnapshot(GetSharedTierSnapshotArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierSnapshot:getSharedTierSnapshot", TypeShape.of(GetSharedTierSnapshotResult.class), args, Utilities.withVersion(options)); - } - public static CompletableFuture getSharedTierSnapshotPlain(GetSharedTierSnapshotPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierSnapshot:getSharedTierSnapshot", TypeShape.of(GetSharedTierSnapshotResult.class), args, Utilities.withVersion(options)); - } - public static Output getSharedTierSnapshots(GetSharedTierSnapshotsArgs args) { - return getSharedTierSnapshots(args, InvokeOptions.Empty); - } - public static CompletableFuture getSharedTierSnapshotsPlain(GetSharedTierSnapshotsPlainArgs args) { - return getSharedTierSnapshotsPlain(args, InvokeOptions.Empty); - } - public static Output getSharedTierSnapshots(GetSharedTierSnapshotsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getSharedTierSnapshots:getSharedTierSnapshots", TypeShape.of(GetSharedTierSnapshotsInvokeResult.class), args, Utilities.withVersion(options)); - } - public static CompletableFuture getSharedTierSnapshotsPlain(GetSharedTierSnapshotsPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getSharedTierSnapshots:getSharedTierSnapshots", TypeShape.of(GetSharedTierSnapshotsInvokeResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getStreamConnectionsPlain(GetStreamConnectionsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamConnections:getStreamConnections", TypeShape.of(GetStreamConnectionsInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.StreamConnection + * ## # Data Source: mongodbatlas.StreamInstance * - * `mongodbatlas.StreamConnection` describes a stream connection. + * `mongodbatlas.StreamInstance` describes a stream instance. * * ## Example Usage * @@ -23543,7 +25389,7 @@ public static CompletableFuture getSharedTie * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23557,10 +25403,9 @@ public static CompletableFuture getSharedTie * } * * public static void stack(Context ctx) { - * final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder() + * final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder() * .projectId("") * .instanceName("") - * .connectionName("") * .build()); * * } @@ -23570,13 +25415,13 @@ public static CompletableFuture getSharedTie * <!--End PulumiCodeChooser --> * */ - public static Output getStreamConnection(GetStreamConnectionArgs args) { - return getStreamConnection(args, InvokeOptions.Empty); + public static Output getStreamInstance(GetStreamInstanceArgs args) { + return getStreamInstance(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.StreamConnection + * ## # Data Source: mongodbatlas.StreamInstance * - * `mongodbatlas.StreamConnection` describes a stream connection. + * `mongodbatlas.StreamInstance` describes a stream instance. * * ## Example Usage * @@ -23589,7 +25434,7 @@ public static Output getStreamConnection(GetStreamCon * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23603,10 +25448,9 @@ public static Output getStreamConnection(GetStreamCon * } * * public static void stack(Context ctx) { - * final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder() + * final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder() * .projectId("") * .instanceName("") - * .connectionName("") * .build()); * * } @@ -23616,13 +25460,13 @@ public static Output getStreamConnection(GetStreamCon * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getStreamConnectionPlain(GetStreamConnectionPlainArgs args) { - return getStreamConnectionPlain(args, InvokeOptions.Empty); + public static CompletableFuture getStreamInstancePlain(GetStreamInstancePlainArgs args) { + return getStreamInstancePlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.StreamConnection + * ## # Data Source: mongodbatlas.StreamInstance * - * `mongodbatlas.StreamConnection` describes a stream connection. + * `mongodbatlas.StreamInstance` describes a stream instance. * * ## Example Usage * @@ -23635,7 +25479,7 @@ public static CompletableFuture getStreamConnectionPl * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23649,10 +25493,9 @@ public static CompletableFuture getStreamConnectionPl * } * * public static void stack(Context ctx) { - * final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder() + * final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder() * .projectId("") * .instanceName("") - * .connectionName("") * .build()); * * } @@ -23662,13 +25505,13 @@ public static CompletableFuture getStreamConnectionPl * <!--End PulumiCodeChooser --> * */ - public static Output getStreamConnection(GetStreamConnectionArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getStreamConnection:getStreamConnection", TypeShape.of(GetStreamConnectionResult.class), args, Utilities.withVersion(options)); + public static Output getStreamInstance(GetStreamInstanceArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getStreamInstance:getStreamInstance", TypeShape.of(GetStreamInstanceResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.StreamConnection + * ## # Data Source: mongodbatlas.StreamInstance * - * `mongodbatlas.StreamConnection` describes a stream connection. + * `mongodbatlas.StreamInstance` describes a stream instance. * * ## Example Usage * @@ -23681,7 +25524,7 @@ public static Output getStreamConnection(GetStreamCon * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23695,10 +25538,9 @@ public static Output getStreamConnection(GetStreamCon * } * * public static void stack(Context ctx) { - * final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder() + * final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder() * .projectId("") * .instanceName("") - * .connectionName("") * .build()); * * } @@ -23708,13 +25550,13 @@ public static Output getStreamConnection(GetStreamCon * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getStreamConnectionPlain(GetStreamConnectionPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamConnection:getStreamConnection", TypeShape.of(GetStreamConnectionResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getStreamInstancePlain(GetStreamInstancePlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamInstance:getStreamInstance", TypeShape.of(GetStreamInstanceResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getStreamConnections + * ## # Data Source: mongodbatlas.getStreamInstances * - * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. + * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project. * * ## Example Usage * @@ -23727,7 +25569,7 @@ public static CompletableFuture getStreamConnectionPl * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23741,9 +25583,8 @@ public static CompletableFuture getStreamConnectionPl * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getStreamConnections(GetStreamConnectionsArgs.builder() + * final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder() * .projectId("") - * .instanceName("") * .build()); * * } @@ -23753,13 +25594,13 @@ public static CompletableFuture getStreamConnectionPl * <!--End PulumiCodeChooser --> * */ - public static Output getStreamConnections(GetStreamConnectionsArgs args) { - return getStreamConnections(args, InvokeOptions.Empty); + public static Output getStreamInstances(GetStreamInstancesArgs args) { + return getStreamInstances(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getStreamConnections + * ## # Data Source: mongodbatlas.getStreamInstances * - * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. + * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project. * * ## Example Usage * @@ -23772,7 +25613,7 @@ public static Output getStreamConnections(GetS * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23786,9 +25627,8 @@ public static Output getStreamConnections(GetS * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getStreamConnections(GetStreamConnectionsArgs.builder() + * final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder() * .projectId("") - * .instanceName("") * .build()); * * } @@ -23798,13 +25638,13 @@ public static Output getStreamConnections(GetS * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getStreamConnectionsPlain(GetStreamConnectionsPlainArgs args) { - return getStreamConnectionsPlain(args, InvokeOptions.Empty); + public static CompletableFuture getStreamInstancesPlain(GetStreamInstancesPlainArgs args) { + return getStreamInstancesPlain(args, InvokeOptions.Empty); } /** - * ## # Data Source: mongodbatlas.getStreamConnections + * ## # Data Source: mongodbatlas.getStreamInstances * - * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. + * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project. * * ## Example Usage * @@ -23817,7 +25657,7 @@ public static CompletableFuture getStreamConne * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23831,9 +25671,8 @@ public static CompletableFuture getStreamConne * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getStreamConnections(GetStreamConnectionsArgs.builder() + * final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder() * .projectId("") - * .instanceName("") * .build()); * * } @@ -23843,13 +25682,13 @@ public static CompletableFuture getStreamConne * <!--End PulumiCodeChooser --> * */ - public static Output getStreamConnections(GetStreamConnectionsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("mongodbatlas:index/getStreamConnections:getStreamConnections", TypeShape.of(GetStreamConnectionsInvokeResult.class), args, Utilities.withVersion(options)); + public static Output getStreamInstances(GetStreamInstancesArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("mongodbatlas:index/getStreamInstances:getStreamInstances", TypeShape.of(GetStreamInstancesInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.getStreamConnections + * ## # Data Source: mongodbatlas.getStreamInstances * - * `mongodbatlas.getStreamConnections` describes all connections of a stream instance for the specified project. + * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project. * * ## Example Usage * @@ -23862,7 +25701,7 @@ public static Output getStreamConnections(GetS * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.mongodbatlas.MongodbatlasFunctions; - * import com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs; + * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -23876,9 +25715,8 @@ public static Output getStreamConnections(GetS * } * * public static void stack(Context ctx) { - * final var test = MongodbatlasFunctions.getStreamConnections(GetStreamConnectionsArgs.builder() + * final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder() * .projectId("") - * .instanceName("") * .build()); * * } @@ -23888,16 +25726,17 @@ public static Output getStreamConnections(GetS * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getStreamConnectionsPlain(GetStreamConnectionsPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamConnections:getStreamConnections", TypeShape.of(GetStreamConnectionsInvokeResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getStreamInstancesPlain(GetStreamInstancesPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamInstances:getStreamInstances", TypeShape.of(GetStreamInstancesInvokeResult.class), args, Utilities.withVersion(options)); } /** - * ## # Data Source: mongodbatlas.StreamInstance + * ## # Data Source: mongodbatlas.StreamProcessor * - * `mongodbatlas.StreamInstance` describes a stream instance. + * `mongodbatlas.StreamProcessor` describes a stream processor. * * ## Example Usage * + * ### S * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -23906,8 +25745,22 @@ public static CompletableFuture getStreamConne
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -23920,12 +25773,133 @@ public static CompletableFuture getStreamConne
      *         Pulumi.run(App::stack);
      *     }
      * 
-     *     public static void stack(Context ctx) {
-     *         final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder()
-     *             .projectId("")
-     *             .instanceName("")
+     *     public static void stack(Context ctx) {
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
      *             .build());
      * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -23933,16 +25907,17 @@ public static CompletableFuture getStreamConne
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getStreamInstance(GetStreamInstanceArgs args) {
-        return getStreamInstance(args, InvokeOptions.Empty);
+    public static Output getStreamProcessor(GetStreamProcessorArgs args) {
+        return getStreamProcessor(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.StreamInstance
+     * ## # Data Source: mongodbatlas.StreamProcessor
      * 
-     * `mongodbatlas.StreamInstance` describes a stream instance.
+     * `mongodbatlas.StreamProcessor` describes a stream processor.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -23951,8 +25926,22 @@ public static Output getStreamInstance(GetStreamInstanc
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -23966,11 +25955,132 @@ public static Output getStreamInstance(GetStreamInstanc
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder()
-     *             .projectId("")
-     *             .instanceName("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
      *             .build());
      * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -23978,16 +26088,17 @@ public static Output getStreamInstance(GetStreamInstanc
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getStreamInstancePlain(GetStreamInstancePlainArgs args) {
-        return getStreamInstancePlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getStreamProcessorPlain(GetStreamProcessorPlainArgs args) {
+        return getStreamProcessorPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.StreamInstance
+     * ## # Data Source: mongodbatlas.StreamProcessor
      * 
-     * `mongodbatlas.StreamInstance` describes a stream instance.
+     * `mongodbatlas.StreamProcessor` describes a stream processor.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -23996,8 +26107,22 @@ public static CompletableFuture getStreamInstancePlain(
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -24011,11 +26136,132 @@ public static CompletableFuture getStreamInstancePlain(
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder()
-     *             .projectId("")
-     *             .instanceName("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
+     *             .build());
+     * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -24023,16 +26269,17 @@ public static CompletableFuture getStreamInstancePlain(
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getStreamInstance(GetStreamInstanceArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getStreamInstance:getStreamInstance", TypeShape.of(GetStreamInstanceResult.class), args, Utilities.withVersion(options));
+    public static Output getStreamProcessor(GetStreamProcessorArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getStreamProcessor:getStreamProcessor", TypeShape.of(GetStreamProcessorResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.StreamInstance
+     * ## # Data Source: mongodbatlas.StreamProcessor
      * 
-     * `mongodbatlas.StreamInstance` describes a stream instance.
+     * `mongodbatlas.StreamProcessor` describes a stream processor.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -24041,8 +26288,22 @@ public static Output getStreamInstance(GetStreamInstanc
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -24056,11 +26317,132 @@ public static Output getStreamInstance(GetStreamInstanc
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder()
-     *             .projectId("")
-     *             .instanceName("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
      *             .build());
      * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
+     *             .build());
+     * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -24068,16 +26450,17 @@ public static Output getStreamInstance(GetStreamInstanc
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getStreamInstancePlain(GetStreamInstancePlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamInstance:getStreamInstance", TypeShape.of(GetStreamInstanceResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getStreamProcessorPlain(GetStreamProcessorPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamProcessor:getStreamProcessor", TypeShape.of(GetStreamProcessorResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getStreamInstances
+     * ## # Data Source: mongodbatlas.getStreamProcessors
      * 
-     * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project.
+     * `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -24086,8 +26469,22 @@ public static CompletableFuture getStreamInstancePlain(
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -24101,10 +26498,132 @@ public static CompletableFuture getStreamInstancePlain(
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder()
-     *             .projectId("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
      *             .build());
      * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -24112,16 +26631,17 @@ public static CompletableFuture getStreamInstancePlain(
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getStreamInstances(GetStreamInstancesArgs args) {
-        return getStreamInstances(args, InvokeOptions.Empty);
+    public static Output getStreamProcessors(GetStreamProcessorsArgs args) {
+        return getStreamProcessors(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getStreamInstances
+     * ## # Data Source: mongodbatlas.getStreamProcessors
      * 
-     * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project.
+     * `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -24130,8 +26650,22 @@ public static Output getStreamInstances(GetStrea
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -24145,10 +26679,132 @@ public static Output getStreamInstances(GetStrea
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder()
-     *             .projectId("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
      *             .build());
      * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -24156,16 +26812,17 @@ public static Output getStreamInstances(GetStrea
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getStreamInstancesPlain(GetStreamInstancesPlainArgs args) {
-        return getStreamInstancesPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getStreamProcessorsPlain(GetStreamProcessorsPlainArgs args) {
+        return getStreamProcessorsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * ## # Data Source: mongodbatlas.getStreamInstances
+     * ## # Data Source: mongodbatlas.getStreamProcessors
      * 
-     * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project.
+     * `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -24174,8 +26831,22 @@ public static CompletableFuture getStreamInstanc
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -24189,10 +26860,132 @@ public static CompletableFuture getStreamInstanc
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder()
-     *             .projectId("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
+     *             .build());
+     * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
      *             .build());
      * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
+     *             .build());
+     * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -24200,16 +26993,17 @@ public static CompletableFuture getStreamInstanc
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getStreamInstances(GetStreamInstancesArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("mongodbatlas:index/getStreamInstances:getStreamInstances", TypeShape.of(GetStreamInstancesInvokeResult.class), args, Utilities.withVersion(options));
+    public static Output getStreamProcessors(GetStreamProcessorsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("mongodbatlas:index/getStreamProcessors:getStreamProcessors", TypeShape.of(GetStreamProcessorsInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * ## # Data Source: mongodbatlas.getStreamInstances
+     * ## # Data Source: mongodbatlas.getStreamProcessors
      * 
-     * `mongodbatlas.getStreamInstances` describes the stream instances defined in a project.
+     * `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance.
      * 
      * ## Example Usage
      * 
+     * ### S
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -24218,8 +27012,22 @@ public static Output getStreamInstances(GetStrea
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
+     * import com.pulumi.mongodbatlas.StreamInstance;
+     * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+     * import com.pulumi.mongodbatlas.StreamConnection;
+     * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+     * import com.pulumi.mongodbatlas.StreamProcessor;
+     * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+     * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
      * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
-     * import com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+     * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+     * import static com.pulumi.codegen.internal.Serialization.*;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -24233,10 +27041,132 @@ public static Output getStreamInstances(GetStrea
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder()
-     *             .projectId("")
+     *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName("InstanceName")
+     *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+     *                 .region("VIRGINIA_USA")
+     *                 .cloud_provider("AWS")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("sample_stream_solar")
+     *             .type("Sample")
+     *             .build());
+     * 
+     *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("ClusterConnection")
+     *             .type("Cluster")
+     *             .clusterName(clusterName)
+     *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+     *                 .role("atlasAdmin")
+     *                 .type("BUILT_IN")
+     *                 .build())
+     *             .build());
+     * 
+     *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .connectionName("KafkaPlaintextConnection")
+     *             .type("Kafka")
+     *             .authentication(StreamConnectionAuthenticationArgs.builder()
+     *                 .mechanism("PLAIN")
+     *                 .username(kafkaUsername)
+     *                 .password(kafkaPassword)
+     *                 .build())
+     *             .bootstrapServers("localhost:9092,localhost:9092")
+     *             .config(Map.of("auto.offset.reset", "earliest"))
+     *             .security(StreamConnectionSecurityArgs.builder()
+     *                 .protocol("PLAINTEXT")
+     *                 .build())
+     *             .build());
+     * 
+     *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("sampleProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .build());
+     * 
+     *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("clusterProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", "__testLog")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("STARTED")
+     *             .build());
+     * 
+     *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName("kafkaProcessorName")
+     *             .pipeline(serializeJson(
+     *                 jsonArray(
+     *                     jsonObject(
+     *                         jsonProperty("$source", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                         ))
+     *                     ), 
+     *                     jsonObject(
+     *                         jsonProperty("$emit", jsonObject(
+     *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+     *                             jsonProperty("topic", "example_topic")
+     *                         ))
+     *                     )
+     *                 )))
+     *             .state("CREATED")
+     *             .options(StreamProcessorOptionsArgs.builder()
+     *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+     *                     .coll("exampleColumn")
+     *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+     *                     .db("exampleDb")
+     *                     .build())
+     *                 .build())
      *             .build());
      * 
+     *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .build());
+     * 
+     *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+     *             .projectId(projectId)
+     *             .instanceName(example.instanceName())
+     *             .processorName(stream_processor_sample_example.processorName())
+     *             .build());
+     * 
+     *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+     *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
      *     }
      * }
      * }
@@ -24244,8 +27174,8 @@ public static Output getStreamInstances(GetStrea
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getStreamInstancesPlain(GetStreamInstancesPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamInstances:getStreamInstances", TypeShape.of(GetStreamInstancesInvokeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getStreamProcessorsPlain(GetStreamProcessorsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("mongodbatlas:index/getStreamProcessors:getStreamProcessors", TypeShape.of(GetStreamProcessorsInvokeResult.class), args, Utilities.withVersion(options));
     }
     /**
      * ## # Data Source: mongodbatlas.Team
diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchive.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchive.java
index bdcc8376..0687db0e 100644
--- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchive.java
+++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchive.java
@@ -394,9 +394,17 @@ public Output> schedule() {
     public Output state() {
         return this.state;
     }
+    /**
+     * 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 `false`.
+     * 
+     */
     @Export(name="syncCreation", refs={Boolean.class}, tree="[0]")
     private Output syncCreation;
 
+    /**
+     * @return 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 `false`.
+     * 
+     */
     public Output> syncCreation() {
         return Codegen.optional(this.syncCreation);
     }
diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchiveArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchiveArgs.java
index d6e663da..ee6f50de 100644
--- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchiveArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/OnlineArchiveArgs.java
@@ -188,9 +188,17 @@ public Optional> schedule() {
         return Optional.ofNullable(this.schedule);
     }
 
+    /**
+     * 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 `false`.
+     * 
+     */
     @Import(name="syncCreation")
     private @Nullable Output syncCreation;
 
+    /**
+     * @return 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 `false`.
+     * 
+     */
     public Optional> syncCreation() {
         return Optional.ofNullable(this.syncCreation);
     }
@@ -471,11 +479,23 @@ public Builder schedule(OnlineArchiveScheduleArgs schedule) {
             return schedule(Output.of(schedule));
         }
 
+        /**
+         * @param syncCreation 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 `false`.
+         * 
+         * @return builder
+         * 
+         */
         public Builder syncCreation(@Nullable Output syncCreation) {
             $.syncCreation = syncCreation;
             return this;
         }
 
+        /**
+         * @param syncCreation 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 `false`.
+         * 
+         * @return builder
+         * 
+         */
         public Builder syncCreation(Boolean syncCreation) {
             return syncCreation(Output.of(syncCreation));
         }
diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/Project.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/Project.java
index f93e3d27..3464cf81 100644
--- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/Project.java
+++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/Project.java
@@ -137,14 +137,18 @@ public Output created() {
         return this.created;
     }
     /**
-     * IP addresses in a project categorized by services. See IP Addresses.
+     * IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead.
+     * 
+     * @deprecated
+     * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source.
      * 
      */
+    @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */
     @Export(name="ipAddresses", refs={ProjectIpAddresses.class}, tree="[0]")
     private Output ipAddresses;
 
     /**
-     * @return IP addresses in a project categorized by services. See IP Addresses.
+     * @return IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead.
      * 
      */
     public Output ipAddresses() {
diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/StreamProcessor.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/StreamProcessor.java
new file mode 100644
index 00000000..5ed4259c
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/StreamProcessor.java
@@ -0,0 +1,361 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.mongodbatlas;
+
+import com.pulumi.core.Output;
+import com.pulumi.core.annotations.Export;
+import com.pulumi.core.annotations.ResourceType;
+import com.pulumi.core.internal.Codegen;
+import com.pulumi.mongodbatlas.StreamProcessorArgs;
+import com.pulumi.mongodbatlas.Utilities;
+import com.pulumi.mongodbatlas.inputs.StreamProcessorState;
+import com.pulumi.mongodbatlas.outputs.StreamProcessorOptions;
+import java.lang.String;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+/**
+ * ## Example Usage
+ * 
+ * ### S
+ * 
+ * <!--Start PulumiCodeChooser -->
+ * 
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.mongodbatlas.StreamInstance;
+ * import com.pulumi.mongodbatlas.StreamInstanceArgs;
+ * import com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;
+ * import com.pulumi.mongodbatlas.StreamConnection;
+ * import com.pulumi.mongodbatlas.StreamConnectionArgs;
+ * import com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;
+ * import com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;
+ * import com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;
+ * import com.pulumi.mongodbatlas.StreamProcessor;
+ * import com.pulumi.mongodbatlas.StreamProcessorArgs;
+ * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;
+ * import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;
+ * import com.pulumi.mongodbatlas.MongodbatlasFunctions;
+ * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;
+ * import com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new StreamInstance("example", StreamInstanceArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName("InstanceName")
+ *             .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()
+ *                 .region("VIRGINIA_USA")
+ *                 .cloud_provider("AWS")
+ *                 .build())
+ *             .build());
+ * 
+ *         var example_sample = new StreamConnection("example-sample", StreamConnectionArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .connectionName("sample_stream_solar")
+ *             .type("Sample")
+ *             .build());
+ * 
+ *         var example_cluster = new StreamConnection("example-cluster", StreamConnectionArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .connectionName("ClusterConnection")
+ *             .type("Cluster")
+ *             .clusterName(clusterName)
+ *             .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()
+ *                 .role("atlasAdmin")
+ *                 .type("BUILT_IN")
+ *                 .build())
+ *             .build());
+ * 
+ *         var example_kafka = new StreamConnection("example-kafka", StreamConnectionArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .connectionName("KafkaPlaintextConnection")
+ *             .type("Kafka")
+ *             .authentication(StreamConnectionAuthenticationArgs.builder()
+ *                 .mechanism("PLAIN")
+ *                 .username(kafkaUsername)
+ *                 .password(kafkaPassword)
+ *                 .build())
+ *             .bootstrapServers("localhost:9092,localhost:9092")
+ *             .config(Map.of("auto.offset.reset", "earliest"))
+ *             .security(StreamConnectionSecurityArgs.builder()
+ *                 .protocol("PLAINTEXT")
+ *                 .build())
+ *             .build());
+ * 
+ *         var stream_processor_sample_example = new StreamProcessor("stream-processor-sample-example", StreamProcessorArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .processorName("sampleProcessorName")
+ *             .pipeline(serializeJson(
+ *                 jsonArray(
+ *                     jsonObject(
+ *                         jsonProperty("$source", jsonObject(
+ *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-sample().connectionName())
+ *                         ))
+ *                     ), 
+ *                     jsonObject(
+ *                         jsonProperty("$emit", jsonObject(
+ *                             jsonProperty("connectionName", "__testLog")
+ *                         ))
+ *                     )
+ *                 )))
+ *             .state("CREATED")
+ *             .build());
+ * 
+ *         var stream_processor_cluster_example = new StreamProcessor("stream-processor-cluster-example", StreamProcessorArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .processorName("clusterProcessorName")
+ *             .pipeline(serializeJson(
+ *                 jsonArray(
+ *                     jsonObject(
+ *                         jsonProperty("$source", jsonObject(
+ *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+ *                         ))
+ *                     ), 
+ *                     jsonObject(
+ *                         jsonProperty("$emit", jsonObject(
+ *                             jsonProperty("connectionName", "__testLog")
+ *                         ))
+ *                     )
+ *                 )))
+ *             .state("STARTED")
+ *             .build());
+ * 
+ *         var stream_processor_kafka_example = new StreamProcessor("stream-processor-kafka-example", StreamProcessorArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .processorName("kafkaProcessorName")
+ *             .pipeline(serializeJson(
+ *                 jsonArray(
+ *                     jsonObject(
+ *                         jsonProperty("$source", jsonObject(
+ *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-cluster().connectionName())
+ *                         ))
+ *                     ), 
+ *                     jsonObject(
+ *                         jsonProperty("$emit", jsonObject(
+ *                             jsonProperty("connectionName", mongodbatlasStreamConnection.example-kafka().connectionName()),
+ *                             jsonProperty("topic", "example_topic")
+ *                         ))
+ *                     )
+ *                 )))
+ *             .state("CREATED")
+ *             .options(StreamProcessorOptionsArgs.builder()
+ *                 .dlq(StreamProcessorOptionsDlqArgs.builder()
+ *                     .coll("exampleColumn")
+ *                     .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())
+ *                     .db("exampleDb")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *         final var example-stream-processors = MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .build());
+ * 
+ *         final var example-stream-processor = MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()
+ *             .projectId(projectId)
+ *             .instanceName(example.instanceName())
+ *             .processorName(stream_processor_sample_example.processorName())
+ *             .build());
+ * 
+ *         ctx.export("streamProcessorsState", example_stream_processor.applyValue(example_stream_processor -> example_stream_processor.state()));
+ *         ctx.export("streamProcessorsResults", example_stream_processors.applyValue(example_stream_processors -> example_stream_processors.results()));
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="mongodbatlas:index/streamProcessor:StreamProcessor") +public class StreamProcessor extends com.pulumi.resources.CustomResource { + /** + * Human-readable label that identifies the stream instance. + * + */ + @Export(name="instanceName", refs={String.class}, tree="[0]") + private Output instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public Output instanceName() { + return this.instanceName; + } + /** + * Optional configuration for the stream processor. + * + */ + @Export(name="options", refs={StreamProcessorOptions.class}, tree="[0]") + private Output options; + + /** + * @return Optional configuration for the stream processor. + * + */ + public Output> options() { + return Codegen.optional(this.options); + } + /** + * 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + */ + @Export(name="pipeline", refs={String.class}, tree="[0]") + private Output pipeline; + + /** + * @return 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + */ + public Output pipeline() { + return this.pipeline; + } + /** + * Human-readable label that identifies the stream processor. + * + */ + @Export(name="processorName", refs={String.class}, tree="[0]") + private Output processorName; + + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public Output processorName() { + return this.processorName; + } + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Export(name="projectId", refs={String.class}, tree="[0]") + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public Output projectId() { + return this.projectId; + } + /** + * 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + */ + public Output state() { + return this.state; + } + /** + * 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. + * + */ + @Export(name="stats", refs={String.class}, tree="[0]") + private Output stats; + + /** + * @return 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. + * + */ + public Output stats() { + return this.stats; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public StreamProcessor(java.lang.String name) { + this(name, StreamProcessorArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public StreamProcessor(java.lang.String name, StreamProcessorArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public StreamProcessor(java.lang.String name, StreamProcessorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("mongodbatlas:index/streamProcessor:StreamProcessor", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private StreamProcessor(java.lang.String name, Output id, @Nullable StreamProcessorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("mongodbatlas:index/streamProcessor:StreamProcessor", name, state, makeResourceOptions(options, id), false); + } + + private static StreamProcessorArgs makeArgs(StreamProcessorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? StreamProcessorArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static StreamProcessor get(java.lang.String name, Output id, @Nullable StreamProcessorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new StreamProcessor(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/StreamProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/StreamProcessorArgs.java new file mode 100644 index 00000000..691c93f4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/StreamProcessorArgs.java @@ -0,0 +1,298 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorArgs Empty = new StreamProcessorArgs(); + + /** + * Human-readable label that identifies the stream instance. + * + */ + @Import(name="instanceName", required=true) + private Output instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public Output instanceName() { + return this.instanceName; + } + + /** + * Optional configuration for the stream processor. + * + */ + @Import(name="options") + private @Nullable Output options; + + /** + * @return Optional configuration for the stream processor. + * + */ + public Optional> options() { + return Optional.ofNullable(this.options); + } + + /** + * 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + */ + @Import(name="pipeline", required=true) + private Output pipeline; + + /** + * @return 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + */ + public Output pipeline() { + return this.pipeline; + } + + /** + * Human-readable label that identifies the stream processor. + * + */ + @Import(name="processorName", required=true) + private Output processorName; + + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public Output processorName() { + return this.processorName; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public Output projectId() { + return this.projectId; + } + + /** + * 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + private StreamProcessorArgs() {} + + private StreamProcessorArgs(StreamProcessorArgs $) { + this.instanceName = $.instanceName; + this.options = $.options; + this.pipeline = $.pipeline; + this.processorName = $.processorName; + this.projectId = $.projectId; + this.state = $.state; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorArgs $; + + public Builder() { + $ = new StreamProcessorArgs(); + } + + public Builder(StreamProcessorArgs defaults) { + $ = new StreamProcessorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(Output instanceName) { + $.instanceName = instanceName; + return this; + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(String instanceName) { + return instanceName(Output.of(instanceName)); + } + + /** + * @param options Optional configuration for the stream processor. + * + * @return builder + * + */ + public Builder options(@Nullable Output options) { + $.options = options; + return this; + } + + /** + * @param options Optional configuration for the stream processor. + * + * @return builder + * + */ + public Builder options(StreamProcessorOptionsArgs options) { + return options(Output.of(options)); + } + + /** + * @param pipeline 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + * @return builder + * + */ + public Builder pipeline(Output pipeline) { + $.pipeline = pipeline; + return this; + } + + /** + * @param pipeline 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + * @return builder + * + */ + public Builder pipeline(String pipeline) { + return pipeline(Output.of(pipeline)); + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(Output processorName) { + $.processorName = processorName; + return this; + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(String processorName) { + return processorName(Output.of(processorName)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + /** + * @param state 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + public StreamProcessorArgs build() { + if ($.instanceName == null) { + throw new MissingRequiredPropertyException("StreamProcessorArgs", "instanceName"); + } + if ($.pipeline == null) { + throw new MissingRequiredPropertyException("StreamProcessorArgs", "pipeline"); + } + if ($.processorName == null) { + throw new MissingRequiredPropertyException("StreamProcessorArgs", "processorName"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("StreamProcessorArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterAdvancedConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterAdvancedConfigurationArgs.java index 1c68c138..7221291b 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterAdvancedConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterAdvancedConfigurationArgs.java @@ -17,6 +17,21 @@ public final class AdvancedClusterAdvancedConfigurationArgs extends com.pulumi.r public static final AdvancedClusterAdvancedConfigurationArgs Empty = new AdvancedClusterAdvancedConfigurationArgs(); + /** + * 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. + * + */ + @Import(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + private @Nullable Output changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + + /** + * @return 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. + * + */ + public Optional> changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return Optional.ofNullable(this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds); + } + /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -211,6 +226,7 @@ public Optional> transactionLifetimeLimitSeconds() { private AdvancedClusterAdvancedConfigurationArgs() {} private AdvancedClusterAdvancedConfigurationArgs(AdvancedClusterAdvancedConfigurationArgs $) { + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = $.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = $.defaultReadConcern; this.defaultWriteConcern = $.defaultWriteConcern; this.failIndexKeyTooLong = $.failIndexKeyTooLong; @@ -242,6 +258,27 @@ public Builder(AdvancedClusterAdvancedConfigurationArgs defaults) { $ = new AdvancedClusterAdvancedConfigurationArgs(Objects.requireNonNull(defaults)); } + /** + * @param changeStreamOptionsPreAndPostImagesExpireAfterSeconds 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. + * + * @return builder + * + */ + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(@Nullable Output changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + $.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } + + /** + * @param changeStreamOptionsPreAndPostImagesExpireAfterSeconds 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. + * + * @return builder + * + */ + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + return changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Output.of(changeStreamOptionsPreAndPostImagesExpireAfterSeconds)); + } + /** * @param defaultReadConcern [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterState.java index 221a01f2..4cb71a03 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/AdvancedClusterState.java @@ -209,10 +209,10 @@ public Optional> globalClusterSelfManagedSharding() { * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ @Import(name="labels") private @Nullable Output> labels; @@ -220,10 +220,10 @@ public Optional> globalClusterSelfManagedSharding() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Optional>> labels() { return Optional.ofNullable(this.labels); } @@ -310,6 +310,21 @@ public Optional> projectId() { return Optional.ofNullable(this.projectId); } + /** + * 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) + * + */ + @Import(name="replicaSetScalingStrategy") + private @Nullable Output replicaSetScalingStrategy; + + /** + * @return 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) + * + */ + public Optional> replicaSetScalingStrategy() { + return Optional.ofNullable(this.replicaSetScalingStrategy); + } + /** * 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below * @@ -454,6 +469,7 @@ private AdvancedClusterState(AdvancedClusterState $) { this.paused = $.paused; this.pitEnabled = $.pitEnabled; this.projectId = $.projectId; + this.replicaSetScalingStrategy = $.replicaSetScalingStrategy; this.replicationSpecs = $.replicationSpecs; this.retainBackupsEnabled = $.retainBackupsEnabled; this.rootCertType = $.rootCertType; @@ -736,10 +752,10 @@ public Builder globalClusterSelfManagedSharding(Boolean globalClusterSelfManaged * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; @@ -751,10 +767,10 @@ public Builder labels(@Nullable Output> labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(List labels) { return labels(Output.of(labels)); } @@ -765,10 +781,10 @@ public Builder labels(List labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(AdvancedClusterLabelArgs... labels) { return labels(List.of(labels)); } @@ -887,6 +903,27 @@ public Builder projectId(String projectId) { return projectId(Output.of(projectId)); } + /** + * @param replicaSetScalingStrategy 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) + * + * @return builder + * + */ + public Builder replicaSetScalingStrategy(@Nullable Output replicaSetScalingStrategy) { + $.replicaSetScalingStrategy = replicaSetScalingStrategy; + return this; + } + + /** + * @param replicaSetScalingStrategy 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) + * + * @return builder + * + */ + public Builder replicaSetScalingStrategy(String replicaSetScalingStrategy) { + return replicaSetScalingStrategy(Output.of(replicaSetScalingStrategy)); + } + /** * @param replicationSpecs 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterAdvancedConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterAdvancedConfigurationArgs.java index 6aa4d365..ea63ed94 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterAdvancedConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterAdvancedConfigurationArgs.java @@ -17,6 +17,21 @@ public final class ClusterAdvancedConfigurationArgs extends com.pulumi.resources public static final ClusterAdvancedConfigurationArgs Empty = new ClusterAdvancedConfigurationArgs(); + /** + * 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. + * + */ + @Import(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + private @Nullable Output changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + + /** + * @return 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. + * + */ + public Optional> changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return Optional.ofNullable(this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds); + } + /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -211,6 +226,7 @@ public Optional> transactionLifetimeLimitSeconds() { private ClusterAdvancedConfigurationArgs() {} private ClusterAdvancedConfigurationArgs(ClusterAdvancedConfigurationArgs $) { + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = $.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = $.defaultReadConcern; this.defaultWriteConcern = $.defaultWriteConcern; this.failIndexKeyTooLong = $.failIndexKeyTooLong; @@ -242,6 +258,27 @@ public Builder(ClusterAdvancedConfigurationArgs defaults) { $ = new ClusterAdvancedConfigurationArgs(Objects.requireNonNull(defaults)); } + /** + * @param changeStreamOptionsPreAndPostImagesExpireAfterSeconds 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. + * + * @return builder + * + */ + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(@Nullable Output changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + $.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } + + /** + * @param changeStreamOptionsPreAndPostImagesExpireAfterSeconds 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. + * + * @return builder + * + */ + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + return changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Output.of(changeStreamOptionsPreAndPostImagesExpireAfterSeconds)); + } + /** * @param defaultReadConcern [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterState.java index a6e27187..71703509 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ClusterState.java @@ -273,10 +273,10 @@ public Optional> encryptionAtRestProvider() { * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ @Import(name="labels") private @Nullable Output> labels; @@ -284,10 +284,10 @@ public Optional> encryptionAtRestProvider() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Optional>> labels() { return Optional.ofNullable(this.labels); } @@ -1156,10 +1156,10 @@ public Builder encryptionAtRestProvider(String encryptionAtRestProvider) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; @@ -1171,10 +1171,10 @@ public Builder labels(@Nullable Output> labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(List labels) { return labels(Output.of(labels)); } @@ -1185,10 +1185,10 @@ public Builder labels(List labels) { * @return builder * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public Builder labels(ClusterLabelArgs... labels) { return labels(List.of(labels)); } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAwsKmsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAwsKmsConfigArgs.java index e935c1ab..a0f08db3 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAwsKmsConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAwsKmsConfigArgs.java @@ -16,22 +16,30 @@ public final class EncryptionAtRestAwsKmsConfigArgs extends com.pulumi.resources public static final EncryptionAtRestAwsKmsConfigArgs Empty = new EncryptionAtRestAwsKmsConfigArgs(); + /** + * 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). + * + */ @Import(name="accessKeyId") private @Nullable Output accessKeyId; + /** + * @return 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). + * + */ public Optional> accessKeyId() { return Optional.ofNullable(this.accessKeyId); } /** - * The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. * */ @Import(name="customerMasterKeyId") private @Nullable Output customerMasterKeyId; /** - * @return The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * @return Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. * */ public Optional> customerMasterKeyId() { @@ -39,14 +47,14 @@ public Optional> customerMasterKeyId() { } /** - * Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ @Import(name="enabled") private @Nullable Output enabled; /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ public Optional> enabled() { @@ -54,14 +62,14 @@ public Optional> enabled() { } /** - * The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * 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. * */ @Import(name="region") private @Nullable Output region; /** - * @return The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * @return 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. * */ public Optional> region() { @@ -69,27 +77,50 @@ public Optional> region() { } /** - * ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + * 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. * */ @Import(name="roleId") private @Nullable Output roleId; /** - * @return ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + * @return 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. * */ public Optional> roleId() { return Optional.ofNullable(this.roleId); } + /** + * 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. + * + */ @Import(name="secretAccessKey") private @Nullable Output secretAccessKey; + /** + * @return 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. + * + */ public Optional> secretAccessKey() { return Optional.ofNullable(this.secretAccessKey); } + /** + * Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + @Import(name="valid") + private @Nullable Output valid; + + /** + * @return Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + public Optional> valid() { + return Optional.ofNullable(this.valid); + } + private EncryptionAtRestAwsKmsConfigArgs() {} private EncryptionAtRestAwsKmsConfigArgs(EncryptionAtRestAwsKmsConfigArgs $) { @@ -99,6 +130,7 @@ private EncryptionAtRestAwsKmsConfigArgs(EncryptionAtRestAwsKmsConfigArgs $) { this.region = $.region; this.roleId = $.roleId; this.secretAccessKey = $.secretAccessKey; + this.valid = $.valid; } public static Builder builder() { @@ -119,17 +151,29 @@ public Builder(EncryptionAtRestAwsKmsConfigArgs defaults) { $ = new EncryptionAtRestAwsKmsConfigArgs(Objects.requireNonNull(defaults)); } + /** + * @param accessKeyId 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). + * + * @return builder + * + */ public Builder accessKeyId(@Nullable Output accessKeyId) { $.accessKeyId = accessKeyId; return this; } + /** + * @param accessKeyId 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). + * + * @return builder + * + */ public Builder accessKeyId(String accessKeyId) { return accessKeyId(Output.of(accessKeyId)); } /** - * @param customerMasterKeyId The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * @param customerMasterKeyId Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. * * @return builder * @@ -140,7 +184,7 @@ public Builder customerMasterKeyId(@Nullable Output customerMasterKeyId) } /** - * @param customerMasterKeyId The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * @param customerMasterKeyId Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. * * @return builder * @@ -150,7 +194,7 @@ public Builder customerMasterKeyId(String customerMasterKeyId) { } /** - * @param enabled Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * @param enabled Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * * @return builder * @@ -161,7 +205,7 @@ public Builder enabled(@Nullable Output enabled) { } /** - * @param enabled Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * @param enabled Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * * @return builder * @@ -171,7 +215,7 @@ public Builder enabled(Boolean enabled) { } /** - * @param region The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * @param region 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. * * @return builder * @@ -182,7 +226,7 @@ public Builder region(@Nullable Output region) { } /** - * @param region The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * @param region 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. * * @return builder * @@ -192,7 +236,7 @@ public Builder region(String region) { } /** - * @param roleId ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + * @param roleId 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. * * @return builder * @@ -203,7 +247,7 @@ public Builder roleId(@Nullable Output roleId) { } /** - * @param roleId ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + * @param roleId 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. * * @return builder * @@ -212,15 +256,48 @@ public Builder roleId(String roleId) { return roleId(Output.of(roleId)); } + /** + * @param secretAccessKey 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. + * + * @return builder + * + */ public Builder secretAccessKey(@Nullable Output secretAccessKey) { $.secretAccessKey = secretAccessKey; return this; } + /** + * @param secretAccessKey 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. + * + * @return builder + * + */ public Builder secretAccessKey(String secretAccessKey) { return secretAccessKey(Output.of(secretAccessKey)); } + /** + * @param valid Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + * @return builder + * + */ + public Builder valid(@Nullable Output valid) { + $.valid = valid; + return this; + } + + /** + * @param valid Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + * @return builder + * + */ + public Builder valid(Boolean valid) { + return valid(Output.of(valid)); + } + public EncryptionAtRestAwsKmsConfigArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAzureKeyVaultConfigArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAzureKeyVaultConfigArgs.java index 1f2540ea..a9649131 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAzureKeyVaultConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestAzureKeyVaultConfigArgs.java @@ -17,14 +17,14 @@ public final class EncryptionAtRestAzureKeyVaultConfigArgs extends com.pulumi.re public static final EncryptionAtRestAzureKeyVaultConfigArgs Empty = new EncryptionAtRestAzureKeyVaultConfigArgs(); /** - * The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * Azure environment in which your account credentials reside. * */ @Import(name="azureEnvironment") private @Nullable Output azureEnvironment; /** - * @return The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * @return Azure environment in which your account credentials reside. * */ public Optional> azureEnvironment() { @@ -32,14 +32,14 @@ public Optional> azureEnvironment() { } /** - * The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. * */ @Import(name="clientId") private @Nullable Output clientId; /** - * @return The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * @return Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. * */ public Optional> clientId() { @@ -47,14 +47,14 @@ public Optional> clientId() { } /** - * Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ @Import(name="enabled") private @Nullable Output enabled; /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ public Optional> enabled() { @@ -62,14 +62,14 @@ public Optional> enabled() { } /** - * The unique identifier of a key in an Azure Key Vault. + * Web address with a unique key that identifies for your Azure Key Vault. * */ @Import(name="keyIdentifier") private @Nullable Output keyIdentifier; /** - * @return The unique identifier of a key in an Azure Key Vault. + * @return Web address with a unique key that identifies for your Azure Key Vault. * */ public Optional> keyIdentifier() { @@ -77,14 +77,14 @@ public Optional> keyIdentifier() { } /** - * The name of an Azure Key Vault containing your key. + * Unique string that identifies the Azure Key Vault that contains your key. * */ @Import(name="keyVaultName") private @Nullable Output keyVaultName; /** - * @return The name of an Azure Key Vault containing your key. + * @return Unique string that identifies the Azure Key Vault that contains your key. * */ public Optional> keyVaultName() { @@ -92,14 +92,29 @@ public Optional> keyVaultName() { } /** - * The name of the Azure Resource group that contains an Azure Key Vault. + * Enable connection to your Azure Key Vault over private networking. + * + */ + @Import(name="requirePrivateNetworking") + private @Nullable Output requirePrivateNetworking; + + /** + * @return Enable connection to your Azure Key Vault over private networking. + * + */ + public Optional> requirePrivateNetworking() { + return Optional.ofNullable(this.requirePrivateNetworking); + } + + /** + * Name of the Azure resource group that contains your Azure Key Vault. * */ @Import(name="resourceGroupName") private @Nullable Output resourceGroupName; /** - * @return The name of the Azure Resource group that contains an Azure Key Vault. + * @return Name of the Azure resource group that contains your Azure Key Vault. * */ public Optional> resourceGroupName() { @@ -107,14 +122,14 @@ public Optional> resourceGroupName() { } /** - * The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * 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. * */ @Import(name="secret") private @Nullable Output secret; /** - * @return The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * @return 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. * */ public Optional> secret() { @@ -122,14 +137,14 @@ public Optional> secret() { } /** - * The unique identifier associated with an Azure subscription. + * Unique 36-hexadecimal character string that identifies your Azure subscription. * */ @Import(name="subscriptionId") private @Nullable Output subscriptionId; /** - * @return The unique identifier associated with an Azure subscription. + * @return Unique 36-hexadecimal character string that identifies your Azure subscription. * */ public Optional> subscriptionId() { @@ -137,20 +152,35 @@ public Optional> subscriptionId() { } /** - * The unique identifier for an Azure AD tenant within an Azure subscription. + * Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. * */ @Import(name="tenantId") private @Nullable Output tenantId; /** - * @return The unique identifier for an Azure AD tenant within an Azure subscription. + * @return Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. * */ public Optional> tenantId() { return Optional.ofNullable(this.tenantId); } + /** + * Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + */ + @Import(name="valid") + private @Nullable Output valid; + + /** + * @return Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + */ + public Optional> valid() { + return Optional.ofNullable(this.valid); + } + private EncryptionAtRestAzureKeyVaultConfigArgs() {} private EncryptionAtRestAzureKeyVaultConfigArgs(EncryptionAtRestAzureKeyVaultConfigArgs $) { @@ -159,10 +189,12 @@ private EncryptionAtRestAzureKeyVaultConfigArgs(EncryptionAtRestAzureKeyVaultCon this.enabled = $.enabled; this.keyIdentifier = $.keyIdentifier; this.keyVaultName = $.keyVaultName; + this.requirePrivateNetworking = $.requirePrivateNetworking; this.resourceGroupName = $.resourceGroupName; this.secret = $.secret; this.subscriptionId = $.subscriptionId; this.tenantId = $.tenantId; + this.valid = $.valid; } public static Builder builder() { @@ -184,7 +216,7 @@ public Builder(EncryptionAtRestAzureKeyVaultConfigArgs defaults) { } /** - * @param azureEnvironment The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * @param azureEnvironment Azure environment in which your account credentials reside. * * @return builder * @@ -195,7 +227,7 @@ public Builder azureEnvironment(@Nullable Output azureEnvironment) { } /** - * @param azureEnvironment The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * @param azureEnvironment Azure environment in which your account credentials reside. * * @return builder * @@ -205,7 +237,7 @@ public Builder azureEnvironment(String azureEnvironment) { } /** - * @param clientId The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * @param clientId Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. * * @return builder * @@ -216,7 +248,7 @@ public Builder clientId(@Nullable Output clientId) { } /** - * @param clientId The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * @param clientId Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. * * @return builder * @@ -226,7 +258,7 @@ public Builder clientId(String clientId) { } /** - * @param enabled Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @param enabled Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * * @return builder * @@ -237,7 +269,7 @@ public Builder enabled(@Nullable Output enabled) { } /** - * @param enabled Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @param enabled Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * * @return builder * @@ -247,7 +279,7 @@ public Builder enabled(Boolean enabled) { } /** - * @param keyIdentifier The unique identifier of a key in an Azure Key Vault. + * @param keyIdentifier Web address with a unique key that identifies for your Azure Key Vault. * * @return builder * @@ -258,7 +290,7 @@ public Builder keyIdentifier(@Nullable Output keyIdentifier) { } /** - * @param keyIdentifier The unique identifier of a key in an Azure Key Vault. + * @param keyIdentifier Web address with a unique key that identifies for your Azure Key Vault. * * @return builder * @@ -268,7 +300,7 @@ public Builder keyIdentifier(String keyIdentifier) { } /** - * @param keyVaultName The name of an Azure Key Vault containing your key. + * @param keyVaultName Unique string that identifies the Azure Key Vault that contains your key. * * @return builder * @@ -279,7 +311,7 @@ public Builder keyVaultName(@Nullable Output keyVaultName) { } /** - * @param keyVaultName The name of an Azure Key Vault containing your key. + * @param keyVaultName Unique string that identifies the Azure Key Vault that contains your key. * * @return builder * @@ -289,7 +321,28 @@ public Builder keyVaultName(String keyVaultName) { } /** - * @param resourceGroupName The name of the Azure Resource group that contains an Azure Key Vault. + * @param requirePrivateNetworking Enable connection to your Azure Key Vault over private networking. + * + * @return builder + * + */ + public Builder requirePrivateNetworking(@Nullable Output requirePrivateNetworking) { + $.requirePrivateNetworking = requirePrivateNetworking; + return this; + } + + /** + * @param requirePrivateNetworking Enable connection to your Azure Key Vault over private networking. + * + * @return builder + * + */ + public Builder requirePrivateNetworking(Boolean requirePrivateNetworking) { + return requirePrivateNetworking(Output.of(requirePrivateNetworking)); + } + + /** + * @param resourceGroupName Name of the Azure resource group that contains your Azure Key Vault. * * @return builder * @@ -300,7 +353,7 @@ public Builder resourceGroupName(@Nullable Output resourceGroupName) { } /** - * @param resourceGroupName The name of the Azure Resource group that contains an Azure Key Vault. + * @param resourceGroupName Name of the Azure resource group that contains your Azure Key Vault. * * @return builder * @@ -310,7 +363,7 @@ public Builder resourceGroupName(String resourceGroupName) { } /** - * @param secret The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * @param secret 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. * * @return builder * @@ -321,7 +374,7 @@ public Builder secret(@Nullable Output secret) { } /** - * @param secret The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * @param secret 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. * * @return builder * @@ -331,7 +384,7 @@ public Builder secret(String secret) { } /** - * @param subscriptionId The unique identifier associated with an Azure subscription. + * @param subscriptionId Unique 36-hexadecimal character string that identifies your Azure subscription. * * @return builder * @@ -342,7 +395,7 @@ public Builder subscriptionId(@Nullable Output subscriptionId) { } /** - * @param subscriptionId The unique identifier associated with an Azure subscription. + * @param subscriptionId Unique 36-hexadecimal character string that identifies your Azure subscription. * * @return builder * @@ -352,7 +405,7 @@ public Builder subscriptionId(String subscriptionId) { } /** - * @param tenantId The unique identifier for an Azure AD tenant within an Azure subscription. + * @param tenantId Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. * * @return builder * @@ -363,7 +416,7 @@ public Builder tenantId(@Nullable Output tenantId) { } /** - * @param tenantId The unique identifier for an Azure AD tenant within an Azure subscription. + * @param tenantId Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. * * @return builder * @@ -372,6 +425,27 @@ public Builder tenantId(String tenantId) { return tenantId(Output.of(tenantId)); } + /** + * @param valid Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + * @return builder + * + */ + public Builder valid(@Nullable Output valid) { + $.valid = valid; + return this; + } + + /** + * @param valid Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + * @return builder + * + */ + public Builder valid(Boolean valid) { + return valid(Output.of(valid)); + } + public EncryptionAtRestAzureKeyVaultConfigArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.java index f21a85a1..720c4c78 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestGoogleCloudKmsConfigArgs.java @@ -17,14 +17,14 @@ public final class EncryptionAtRestGoogleCloudKmsConfigArgs extends com.pulumi.r public static final EncryptionAtRestGoogleCloudKmsConfigArgs Empty = new EncryptionAtRestGoogleCloudKmsConfigArgs(); /** - * Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ @Import(name="enabled") private @Nullable Output enabled; /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ public Optional> enabled() { @@ -32,14 +32,14 @@ public Optional> enabled() { } /** - * The Key Version Resource ID from your GCP account. + * Resource path that displays the key version resource ID for your Google Cloud KMS. * */ @Import(name="keyVersionResourceId") private @Nullable Output keyVersionResourceId; /** - * @return The Key Version Resource ID from your GCP account. + * @return Resource path that displays the key version resource ID for your Google Cloud KMS. * */ public Optional> keyVersionResourceId() { @@ -47,26 +47,42 @@ public Optional> keyVersionResourceId() { } /** - * String-formatted JSON object containing GCP KMS credentials from your GCP account. + * 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. * */ @Import(name="serviceAccountKey") private @Nullable Output serviceAccountKey; /** - * @return String-formatted JSON object containing GCP KMS credentials from your GCP account. + * @return 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. * */ public Optional> serviceAccountKey() { return Optional.ofNullable(this.serviceAccountKey); } + /** + * Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + @Import(name="valid") + private @Nullable Output valid; + + /** + * @return Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + public Optional> valid() { + return Optional.ofNullable(this.valid); + } + private EncryptionAtRestGoogleCloudKmsConfigArgs() {} private EncryptionAtRestGoogleCloudKmsConfigArgs(EncryptionAtRestGoogleCloudKmsConfigArgs $) { this.enabled = $.enabled; this.keyVersionResourceId = $.keyVersionResourceId; this.serviceAccountKey = $.serviceAccountKey; + this.valid = $.valid; } public static Builder builder() { @@ -88,7 +104,7 @@ public Builder(EncryptionAtRestGoogleCloudKmsConfigArgs defaults) { } /** - * @param enabled Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @param enabled Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * * @return builder * @@ -99,7 +115,7 @@ public Builder enabled(@Nullable Output enabled) { } /** - * @param enabled Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @param enabled Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * * @return builder * @@ -109,7 +125,7 @@ public Builder enabled(Boolean enabled) { } /** - * @param keyVersionResourceId The Key Version Resource ID from your GCP account. + * @param keyVersionResourceId Resource path that displays the key version resource ID for your Google Cloud KMS. * * @return builder * @@ -120,7 +136,7 @@ public Builder keyVersionResourceId(@Nullable Output keyVersionResourceI } /** - * @param keyVersionResourceId The Key Version Resource ID from your GCP account. + * @param keyVersionResourceId Resource path that displays the key version resource ID for your Google Cloud KMS. * * @return builder * @@ -130,7 +146,7 @@ public Builder keyVersionResourceId(String keyVersionResourceId) { } /** - * @param serviceAccountKey String-formatted JSON object containing GCP KMS credentials from your GCP account. + * @param serviceAccountKey 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. * * @return builder * @@ -141,7 +157,7 @@ public Builder serviceAccountKey(@Nullable Output serviceAccountKey) { } /** - * @param serviceAccountKey String-formatted JSON object containing GCP KMS credentials from your GCP account. + * @param serviceAccountKey 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. * * @return builder * @@ -150,6 +166,27 @@ public Builder serviceAccountKey(String serviceAccountKey) { return serviceAccountKey(Output.of(serviceAccountKey)); } + /** + * @param valid Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + * @return builder + * + */ + public Builder valid(@Nullable Output valid) { + $.valid = valid; + return this; + } + + /** + * @param valid Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + * @return builder + * + */ + public Builder valid(Boolean valid) { + return valid(Output.of(valid)); + } + public EncryptionAtRestGoogleCloudKmsConfigArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestPrivateEndpointState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestPrivateEndpointState.java new file mode 100644 index 00000000..588ef0c2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestPrivateEndpointState.java @@ -0,0 +1,268 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EncryptionAtRestPrivateEndpointState extends com.pulumi.resources.ResourceArgs { + + public static final EncryptionAtRestPrivateEndpointState Empty = new EncryptionAtRestPrivateEndpointState(); + + /** + * Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + */ + @Import(name="cloudProvider") + private @Nullable Output cloudProvider; + + /** + * @return Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + */ + public Optional> cloudProvider() { + return Optional.ofNullable(this.cloudProvider); + } + + /** + * Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + @Import(name="errorMessage") + private @Nullable Output errorMessage; + + /** + * @return Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + public Optional> errorMessage() { + return Optional.ofNullable(this.errorMessage); + } + + /** + * Connection name of the Azure Private Endpoint. + * + */ + @Import(name="privateEndpointConnectionName") + private @Nullable Output privateEndpointConnectionName; + + /** + * @return Connection name of the Azure Private Endpoint. + * + */ + public Optional> privateEndpointConnectionName() { + return Optional.ofNullable(this.privateEndpointConnectionName); + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId") + private @Nullable Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Optional> projectId() { + return Optional.ofNullable(this.projectId); + } + + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + @Import(name="regionName") + private @Nullable Output regionName; + + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + public Optional> regionName() { + return Optional.ofNullable(this.regionName); + } + + /** + * State of the Encryption At Rest private endpoint. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return State of the Encryption At Rest private endpoint. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + private EncryptionAtRestPrivateEndpointState() {} + + private EncryptionAtRestPrivateEndpointState(EncryptionAtRestPrivateEndpointState $) { + this.cloudProvider = $.cloudProvider; + this.errorMessage = $.errorMessage; + this.privateEndpointConnectionName = $.privateEndpointConnectionName; + this.projectId = $.projectId; + this.regionName = $.regionName; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EncryptionAtRestPrivateEndpointState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EncryptionAtRestPrivateEndpointState $; + + public Builder() { + $ = new EncryptionAtRestPrivateEndpointState(); + } + + public Builder(EncryptionAtRestPrivateEndpointState defaults) { + $ = new EncryptionAtRestPrivateEndpointState(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudProvider Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(@Nullable Output cloudProvider) { + $.cloudProvider = cloudProvider; + return this; + } + + /** + * @param cloudProvider Label that identifies the cloud provider for the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(String cloudProvider) { + return cloudProvider(Output.of(cloudProvider)); + } + + /** + * @param errorMessage Error message for failures associated with the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder errorMessage(@Nullable Output errorMessage) { + $.errorMessage = errorMessage; + return this; + } + + /** + * @param errorMessage Error message for failures associated with the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder errorMessage(String errorMessage) { + return errorMessage(Output.of(errorMessage)); + } + + /** + * @param privateEndpointConnectionName Connection name of the Azure Private Endpoint. + * + * @return builder + * + */ + public Builder privateEndpointConnectionName(@Nullable Output privateEndpointConnectionName) { + $.privateEndpointConnectionName = privateEndpointConnectionName; + return this; + } + + /** + * @param privateEndpointConnectionName Connection name of the Azure Private Endpoint. + * + * @return builder + * + */ + public Builder privateEndpointConnectionName(String privateEndpointConnectionName) { + return privateEndpointConnectionName(Output.of(privateEndpointConnectionName)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(@Nullable Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + /** + * @param regionName Cloud provider region in which the Encryption At Rest private endpoint is located. + * + * @return builder + * + */ + public Builder regionName(@Nullable Output regionName) { + $.regionName = regionName; + return this; + } + + /** + * @param regionName Cloud provider region in which the Encryption At Rest private endpoint is located. + * + * @return builder + * + */ + public Builder regionName(String regionName) { + return regionName(Output.of(regionName)); + } + + /** + * @param status State of the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status State of the Encryption At Rest private endpoint. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + public EncryptionAtRestPrivateEndpointState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestState.java index cef64f41..f88ad785 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestState.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/EncryptionAtRestState.java @@ -18,36 +18,60 @@ public final class EncryptionAtRestState extends com.pulumi.resources.ResourceAr public static final EncryptionAtRestState Empty = new EncryptionAtRestState(); + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ @Import(name="awsKmsConfig") private @Nullable Output awsKmsConfig; + /** + * @return Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ public Optional> awsKmsConfig() { return Optional.ofNullable(this.awsKmsConfig); } + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ @Import(name="azureKeyVaultConfig") private @Nullable Output azureKeyVaultConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ public Optional> azureKeyVaultConfig() { return Optional.ofNullable(this.azureKeyVaultConfig); } + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ @Import(name="googleCloudKmsConfig") private @Nullable Output googleCloudKmsConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ public Optional> googleCloudKmsConfig() { return Optional.ofNullable(this.googleCloudKmsConfig); } /** - * The unique identifier for the project. + * Unique 24-hexadecimal digit string that identifies your project. * */ @Import(name="projectId") private @Nullable Output projectId; /** - * @return The unique identifier for the project. + * @return Unique 24-hexadecimal digit string that identifies your project. * */ public Optional> projectId() { @@ -81,35 +105,71 @@ public Builder(EncryptionAtRestState defaults) { $ = new EncryptionAtRestState(Objects.requireNonNull(defaults)); } + /** + * @param awsKmsConfig Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + * @return builder + * + */ public Builder awsKmsConfig(@Nullable Output awsKmsConfig) { $.awsKmsConfig = awsKmsConfig; return this; } + /** + * @param awsKmsConfig Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + * @return builder + * + */ public Builder awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs awsKmsConfig) { return awsKmsConfig(Output.of(awsKmsConfig)); } + /** + * @param azureKeyVaultConfig Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + * @return builder + * + */ public Builder azureKeyVaultConfig(@Nullable Output azureKeyVaultConfig) { $.azureKeyVaultConfig = azureKeyVaultConfig; return this; } + /** + * @param azureKeyVaultConfig Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + * @return builder + * + */ public Builder azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs azureKeyVaultConfig) { return azureKeyVaultConfig(Output.of(azureKeyVaultConfig)); } + /** + * @param googleCloudKmsConfig Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + * @return builder + * + */ public Builder googleCloudKmsConfig(@Nullable Output googleCloudKmsConfig) { $.googleCloudKmsConfig = googleCloudKmsConfig; return this; } + /** + * @param googleCloudKmsConfig Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + * @return builder + * + */ public Builder googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs googleCloudKmsConfig) { return googleCloudKmsConfig(Output.of(googleCloudKmsConfig)); } /** - * @param projectId The unique identifier for the project. + * @param projectId Unique 24-hexadecimal digit string that identifies your project. * * @return builder * @@ -120,7 +180,7 @@ public Builder projectId(@Nullable Output projectId) { } /** - * @param projectId The unique identifier for the project. + * @param projectId Unique 24-hexadecimal digit string that identifies your project. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestArgs.java new file mode 100644 index 00000000..95dd62b1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetEncryptionAtRestArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetEncryptionAtRestArgs Empty = new GetEncryptionAtRestArgs(); + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Output projectId() { + return this.projectId; + } + + private GetEncryptionAtRestArgs() {} + + private GetEncryptionAtRestArgs(GetEncryptionAtRestArgs $) { + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetEncryptionAtRestArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetEncryptionAtRestArgs $; + + public Builder() { + $ = new GetEncryptionAtRestArgs(); + } + + public Builder(GetEncryptionAtRestArgs defaults) { + $ = new GetEncryptionAtRestArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public GetEncryptionAtRestArgs build() { + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPlainArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPlainArgs.java new file mode 100644 index 00000000..0c733030 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPlainArgs.java @@ -0,0 +1,74 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetEncryptionAtRestPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetEncryptionAtRestPlainArgs Empty = new GetEncryptionAtRestPlainArgs(); + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private String projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + + private GetEncryptionAtRestPlainArgs() {} + + private GetEncryptionAtRestPlainArgs(GetEncryptionAtRestPlainArgs $) { + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetEncryptionAtRestPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetEncryptionAtRestPlainArgs $; + + public Builder() { + $ = new GetEncryptionAtRestPlainArgs(); + } + + public Builder(GetEncryptionAtRestPlainArgs defaults) { + $ = new GetEncryptionAtRestPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + $.projectId = projectId; + return this; + } + + public GetEncryptionAtRestPlainArgs build() { + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPlainArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointArgs.java new file mode 100644 index 00000000..e146e857 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointArgs.java @@ -0,0 +1,165 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetEncryptionAtRestPrivateEndpointArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetEncryptionAtRestPrivateEndpointArgs Empty = new GetEncryptionAtRestPrivateEndpointArgs(); + + /** + * Label that identifies the cloud provider of the private endpoint. + * + */ + @Import(name="cloudProvider", required=true) + private Output cloudProvider; + + /** + * @return Label that identifies the cloud provider of the private endpoint. + * + */ + public Output cloudProvider() { + return this.cloudProvider; + } + + /** + * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + @Import(name="id", required=true) + private Output id; + + /** + * @return Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + public Output id() { + return this.id; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Output projectId() { + return this.projectId; + } + + private GetEncryptionAtRestPrivateEndpointArgs() {} + + private GetEncryptionAtRestPrivateEndpointArgs(GetEncryptionAtRestPrivateEndpointArgs $) { + this.cloudProvider = $.cloudProvider; + this.id = $.id; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetEncryptionAtRestPrivateEndpointArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetEncryptionAtRestPrivateEndpointArgs $; + + public Builder() { + $ = new GetEncryptionAtRestPrivateEndpointArgs(); + } + + public Builder(GetEncryptionAtRestPrivateEndpointArgs defaults) { + $ = new GetEncryptionAtRestPrivateEndpointArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudProvider Label that identifies the cloud provider of the private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(Output cloudProvider) { + $.cloudProvider = cloudProvider; + return this; + } + + /** + * @param cloudProvider Label that identifies the cloud provider of the private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(String cloudProvider) { + return cloudProvider(Output.of(cloudProvider)); + } + + /** + * @param id Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + * @return builder + * + */ + public Builder id(Output id) { + $.id = id; + return this; + } + + /** + * @param id Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + * @return builder + * + */ + public Builder id(String id) { + return id(Output.of(id)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public GetEncryptionAtRestPrivateEndpointArgs build() { + if ($.cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointArgs", "cloudProvider"); + } + if ($.id == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointArgs", "id"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointPlainArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointPlainArgs.java new file mode 100644 index 00000000..faba491c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointPlainArgs.java @@ -0,0 +1,134 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetEncryptionAtRestPrivateEndpointPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetEncryptionAtRestPrivateEndpointPlainArgs Empty = new GetEncryptionAtRestPrivateEndpointPlainArgs(); + + /** + * Label that identifies the cloud provider of the private endpoint. + * + */ + @Import(name="cloudProvider", required=true) + private String cloudProvider; + + /** + * @return Label that identifies the cloud provider of the private endpoint. + * + */ + public String cloudProvider() { + return this.cloudProvider; + } + + /** + * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + @Import(name="id", required=true) + private String id; + + /** + * @return Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + public String id() { + return this.id; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private String projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + + private GetEncryptionAtRestPrivateEndpointPlainArgs() {} + + private GetEncryptionAtRestPrivateEndpointPlainArgs(GetEncryptionAtRestPrivateEndpointPlainArgs $) { + this.cloudProvider = $.cloudProvider; + this.id = $.id; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetEncryptionAtRestPrivateEndpointPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetEncryptionAtRestPrivateEndpointPlainArgs $; + + public Builder() { + $ = new GetEncryptionAtRestPrivateEndpointPlainArgs(); + } + + public Builder(GetEncryptionAtRestPrivateEndpointPlainArgs defaults) { + $ = new GetEncryptionAtRestPrivateEndpointPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudProvider Label that identifies the cloud provider of the private endpoint. + * + * @return builder + * + */ + public Builder cloudProvider(String cloudProvider) { + $.cloudProvider = cloudProvider; + return this; + } + + /** + * @param id Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + * @return builder + * + */ + public Builder id(String id) { + $.id = id; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + $.projectId = projectId; + return this; + } + + public GetEncryptionAtRestPrivateEndpointPlainArgs build() { + if ($.cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointPlainArgs", "cloudProvider"); + } + if ($.id == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointPlainArgs", "id"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointPlainArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointsArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointsArgs.java new file mode 100644 index 00000000..f6acefb0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointsArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetEncryptionAtRestPrivateEndpointsArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetEncryptionAtRestPrivateEndpointsArgs Empty = new GetEncryptionAtRestPrivateEndpointsArgs(); + + /** + * Human-readable label that identifies the cloud provider for the private endpoints to return. + * + */ + @Import(name="cloudProvider", required=true) + private Output cloudProvider; + + /** + * @return Human-readable label that identifies the cloud provider for the private endpoints to return. + * + */ + public Output cloudProvider() { + return this.cloudProvider; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Output projectId() { + return this.projectId; + } + + private GetEncryptionAtRestPrivateEndpointsArgs() {} + + private GetEncryptionAtRestPrivateEndpointsArgs(GetEncryptionAtRestPrivateEndpointsArgs $) { + this.cloudProvider = $.cloudProvider; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetEncryptionAtRestPrivateEndpointsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetEncryptionAtRestPrivateEndpointsArgs $; + + public Builder() { + $ = new GetEncryptionAtRestPrivateEndpointsArgs(); + } + + public Builder(GetEncryptionAtRestPrivateEndpointsArgs defaults) { + $ = new GetEncryptionAtRestPrivateEndpointsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudProvider Human-readable label that identifies the cloud provider for the private endpoints to return. + * + * @return builder + * + */ + public Builder cloudProvider(Output cloudProvider) { + $.cloudProvider = cloudProvider; + return this; + } + + /** + * @param cloudProvider Human-readable label that identifies the cloud provider for the private endpoints to return. + * + * @return builder + * + */ + public Builder cloudProvider(String cloudProvider) { + return cloudProvider(Output.of(cloudProvider)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public GetEncryptionAtRestPrivateEndpointsArgs build() { + if ($.cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsArgs", "cloudProvider"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointsPlainArgs.java new file mode 100644 index 00000000..59250bdd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetEncryptionAtRestPrivateEndpointsPlainArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetEncryptionAtRestPrivateEndpointsPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetEncryptionAtRestPrivateEndpointsPlainArgs Empty = new GetEncryptionAtRestPrivateEndpointsPlainArgs(); + + /** + * Human-readable label that identifies the cloud provider for the private endpoints to return. + * + */ + @Import(name="cloudProvider", required=true) + private String cloudProvider; + + /** + * @return Human-readable label that identifies the cloud provider for the private endpoints to return. + * + */ + public String cloudProvider() { + return this.cloudProvider; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private String projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + + private GetEncryptionAtRestPrivateEndpointsPlainArgs() {} + + private GetEncryptionAtRestPrivateEndpointsPlainArgs(GetEncryptionAtRestPrivateEndpointsPlainArgs $) { + this.cloudProvider = $.cloudProvider; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetEncryptionAtRestPrivateEndpointsPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetEncryptionAtRestPrivateEndpointsPlainArgs $; + + public Builder() { + $ = new GetEncryptionAtRestPrivateEndpointsPlainArgs(); + } + + public Builder(GetEncryptionAtRestPrivateEndpointsPlainArgs defaults) { + $ = new GetEncryptionAtRestPrivateEndpointsPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudProvider Human-readable label that identifies the cloud provider for the private endpoints to return. + * + * @return builder + * + */ + public Builder cloudProvider(String cloudProvider) { + $.cloudProvider = cloudProvider; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + $.projectId = projectId; + return this; + } + + public GetEncryptionAtRestPrivateEndpointsPlainArgs build() { + if ($.cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsPlainArgs", "cloudProvider"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsPlainArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetProjectIpAddressesArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetProjectIpAddressesArgs.java new file mode 100644 index 00000000..d7623b1c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetProjectIpAddressesArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetProjectIpAddressesArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetProjectIpAddressesArgs Empty = new GetProjectIpAddressesArgs(); + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public Output projectId() { + return this.projectId; + } + + private GetProjectIpAddressesArgs() {} + + private GetProjectIpAddressesArgs(GetProjectIpAddressesArgs $) { + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetProjectIpAddressesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetProjectIpAddressesArgs $; + + public Builder() { + $ = new GetProjectIpAddressesArgs(); + } + + public Builder(GetProjectIpAddressesArgs defaults) { + $ = new GetProjectIpAddressesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public GetProjectIpAddressesArgs build() { + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetProjectIpAddressesArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetProjectIpAddressesPlainArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetProjectIpAddressesPlainArgs.java new file mode 100644 index 00000000..28647677 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetProjectIpAddressesPlainArgs.java @@ -0,0 +1,74 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetProjectIpAddressesPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetProjectIpAddressesPlainArgs Empty = new GetProjectIpAddressesPlainArgs(); + + /** + * Unique 24-hexadecimal digit string that identifies your project. + * + */ + @Import(name="projectId", required=true) + private String projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + + private GetProjectIpAddressesPlainArgs() {} + + private GetProjectIpAddressesPlainArgs(GetProjectIpAddressesPlainArgs $) { + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetProjectIpAddressesPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetProjectIpAddressesPlainArgs $; + + public Builder() { + $ = new GetProjectIpAddressesPlainArgs(); + } + + public Builder(GetProjectIpAddressesPlainArgs defaults) { + $ = new GetProjectIpAddressesPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + $.projectId = projectId; + return this; + } + + public GetProjectIpAddressesPlainArgs build() { + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetProjectIpAddressesPlainArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorArgs.java new file mode 100644 index 00000000..0e00f3b8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorArgs.java @@ -0,0 +1,165 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetStreamProcessorArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetStreamProcessorArgs Empty = new GetStreamProcessorArgs(); + + /** + * Human-readable label that identifies the stream instance. + * + */ + @Import(name="instanceName", required=true) + private Output instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public Output instanceName() { + return this.instanceName; + } + + /** + * Human-readable label that identifies the stream processor. + * + */ + @Import(name="processorName", required=true) + private Output processorName; + + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public Output processorName() { + return this.processorName; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public Output projectId() { + return this.projectId; + } + + private GetStreamProcessorArgs() {} + + private GetStreamProcessorArgs(GetStreamProcessorArgs $) { + this.instanceName = $.instanceName; + this.processorName = $.processorName; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetStreamProcessorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetStreamProcessorArgs $; + + public Builder() { + $ = new GetStreamProcessorArgs(); + } + + public Builder(GetStreamProcessorArgs defaults) { + $ = new GetStreamProcessorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(Output instanceName) { + $.instanceName = instanceName; + return this; + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(String instanceName) { + return instanceName(Output.of(instanceName)); + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(Output processorName) { + $.processorName = processorName; + return this; + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(String processorName) { + return processorName(Output.of(processorName)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public GetStreamProcessorArgs build() { + if ($.instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorArgs", "instanceName"); + } + if ($.processorName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorArgs", "processorName"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorPlainArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorPlainArgs.java new file mode 100644 index 00000000..2737c72f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorPlainArgs.java @@ -0,0 +1,134 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetStreamProcessorPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetStreamProcessorPlainArgs Empty = new GetStreamProcessorPlainArgs(); + + /** + * Human-readable label that identifies the stream instance. + * + */ + @Import(name="instanceName", required=true) + private String instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public String instanceName() { + return this.instanceName; + } + + /** + * Human-readable label that identifies the stream processor. + * + */ + @Import(name="processorName", required=true) + private String processorName; + + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public String processorName() { + return this.processorName; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Import(name="projectId", required=true) + private String projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public String projectId() { + return this.projectId; + } + + private GetStreamProcessorPlainArgs() {} + + private GetStreamProcessorPlainArgs(GetStreamProcessorPlainArgs $) { + this.instanceName = $.instanceName; + this.processorName = $.processorName; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetStreamProcessorPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetStreamProcessorPlainArgs $; + + public Builder() { + $ = new GetStreamProcessorPlainArgs(); + } + + public Builder(GetStreamProcessorPlainArgs defaults) { + $ = new GetStreamProcessorPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(String instanceName) { + $.instanceName = instanceName; + return this; + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(String processorName) { + $.processorName = processorName; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + $.projectId = projectId; + return this; + } + + public GetStreamProcessorPlainArgs build() { + if ($.instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorPlainArgs", "instanceName"); + } + if ($.processorName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorPlainArgs", "processorName"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorPlainArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorsArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorsArgs.java new file mode 100644 index 00000000..491db3ac --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorsArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetStreamProcessorsArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetStreamProcessorsArgs Empty = new GetStreamProcessorsArgs(); + + /** + * Human-readable label that identifies the stream instance. + * + */ + @Import(name="instanceName", required=true) + private Output instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public Output instanceName() { + return this.instanceName; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Import(name="projectId", required=true) + private Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public Output projectId() { + return this.projectId; + } + + private GetStreamProcessorsArgs() {} + + private GetStreamProcessorsArgs(GetStreamProcessorsArgs $) { + this.instanceName = $.instanceName; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetStreamProcessorsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetStreamProcessorsArgs $; + + public Builder() { + $ = new GetStreamProcessorsArgs(); + } + + public Builder(GetStreamProcessorsArgs defaults) { + $ = new GetStreamProcessorsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(Output instanceName) { + $.instanceName = instanceName; + return this; + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(String instanceName) { + return instanceName(Output.of(instanceName)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public GetStreamProcessorsArgs build() { + if ($.instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsArgs", "instanceName"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorsPlainArgs.java new file mode 100644 index 00000000..093935b0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/GetStreamProcessorsPlainArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetStreamProcessorsPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetStreamProcessorsPlainArgs Empty = new GetStreamProcessorsPlainArgs(); + + /** + * Human-readable label that identifies the stream instance. + * + */ + @Import(name="instanceName", required=true) + private String instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public String instanceName() { + return this.instanceName; + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Import(name="projectId", required=true) + private String projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public String projectId() { + return this.projectId; + } + + private GetStreamProcessorsPlainArgs() {} + + private GetStreamProcessorsPlainArgs(GetStreamProcessorsPlainArgs $) { + this.instanceName = $.instanceName; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetStreamProcessorsPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetStreamProcessorsPlainArgs $; + + public Builder() { + $ = new GetStreamProcessorsPlainArgs(); + } + + public Builder(GetStreamProcessorsPlainArgs defaults) { + $ = new GetStreamProcessorsPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(String instanceName) { + $.instanceName = instanceName; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + $.projectId = projectId; + return this; + } + + public GetStreamProcessorsPlainArgs build() { + if ($.instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsPlainArgs", "instanceName"); + } + if ($.projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsPlainArgs", "projectId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/OnlineArchiveState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/OnlineArchiveState.java index 4bae515c..abb4bb44 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/OnlineArchiveState.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/OnlineArchiveState.java @@ -217,9 +217,17 @@ public Optional> state() { return Optional.ofNullable(this.state); } + /** + * 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 `false`. + * + */ @Import(name="syncCreation") private @Nullable Output syncCreation; + /** + * @return 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 `false`. + * + */ public Optional> syncCreation() { return Optional.ofNullable(this.syncCreation); } @@ -544,11 +552,23 @@ public Builder state(String state) { return state(Output.of(state)); } + /** + * @param syncCreation 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 `false`. + * + * @return builder + * + */ public Builder syncCreation(@Nullable Output syncCreation) { $.syncCreation = syncCreation; return this; } + /** + * @param syncCreation 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 `false`. + * + * @return builder + * + */ public Builder syncCreation(Boolean syncCreation) { return syncCreation(Output.of(syncCreation)); } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ProjectState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ProjectState.java index c64bc811..bc3846bc 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ProjectState.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/ProjectState.java @@ -53,16 +53,24 @@ public Optional> created() { } /** - * IP addresses in a project categorized by services. See IP Addresses. + * IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ @Import(name="ipAddresses") private @Nullable Output ipAddresses; /** - * @return IP addresses in a project categorized by services. See IP Addresses. + * @return IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ public Optional> ipAddresses() { return Optional.ofNullable(this.ipAddresses); } @@ -344,22 +352,30 @@ public Builder created(String created) { } /** - * @param ipAddresses IP addresses in a project categorized by services. See IP Addresses. + * @param ipAddresses IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. * * @return builder * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. + * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ public Builder ipAddresses(@Nullable Output ipAddresses) { $.ipAddresses = ipAddresses; return this; } /** - * @param ipAddresses IP addresses in a project categorized by services. See IP Addresses. + * @param ipAddresses IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. * * @return builder * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. + * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ public Builder ipAddresses(ProjectIpAddressesArgs ipAddresses) { return ipAddresses(Output.of(ipAddresses)); } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorOptionsArgs.java new file mode 100644 index 00000000..8f708fdd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorOptionsArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs; +import java.util.Objects; + + +public final class StreamProcessorOptionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorOptionsArgs Empty = new StreamProcessorOptionsArgs(); + + /** + * 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. + * + */ + @Import(name="dlq", required=true) + private Output dlq; + + /** + * @return 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. + * + */ + public Output dlq() { + return this.dlq; + } + + private StreamProcessorOptionsArgs() {} + + private StreamProcessorOptionsArgs(StreamProcessorOptionsArgs $) { + this.dlq = $.dlq; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorOptionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorOptionsArgs $; + + public Builder() { + $ = new StreamProcessorOptionsArgs(); + } + + public Builder(StreamProcessorOptionsArgs defaults) { + $ = new StreamProcessorOptionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dlq 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. + * + * @return builder + * + */ + public Builder dlq(Output dlq) { + $.dlq = dlq; + return this; + } + + /** + * @param dlq 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. + * + * @return builder + * + */ + public Builder dlq(StreamProcessorOptionsDlqArgs dlq) { + return dlq(Output.of(dlq)); + } + + public StreamProcessorOptionsArgs build() { + if ($.dlq == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsArgs", "dlq"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorOptionsDlqArgs.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorOptionsDlqArgs.java new file mode 100644 index 00000000..59cd7606 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorOptionsDlqArgs.java @@ -0,0 +1,165 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class StreamProcessorOptionsDlqArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorOptionsDlqArgs Empty = new StreamProcessorOptionsDlqArgs(); + + /** + * Name of the collection to use for the DLQ. + * + */ + @Import(name="coll", required=true) + private Output coll; + + /** + * @return Name of the collection to use for the DLQ. + * + */ + public Output coll() { + return this.coll; + } + + /** + * Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + @Import(name="connectionName", required=true) + private Output connectionName; + + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + public Output connectionName() { + return this.connectionName; + } + + /** + * Name of the database to use for the DLQ. + * + */ + @Import(name="db", required=true) + private Output db; + + /** + * @return Name of the database to use for the DLQ. + * + */ + public Output db() { + return this.db; + } + + private StreamProcessorOptionsDlqArgs() {} + + private StreamProcessorOptionsDlqArgs(StreamProcessorOptionsDlqArgs $) { + this.coll = $.coll; + this.connectionName = $.connectionName; + this.db = $.db; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorOptionsDlqArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorOptionsDlqArgs $; + + public Builder() { + $ = new StreamProcessorOptionsDlqArgs(); + } + + public Builder(StreamProcessorOptionsDlqArgs defaults) { + $ = new StreamProcessorOptionsDlqArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param coll Name of the collection to use for the DLQ. + * + * @return builder + * + */ + public Builder coll(Output coll) { + $.coll = coll; + return this; + } + + /** + * @param coll Name of the collection to use for the DLQ. + * + * @return builder + * + */ + public Builder coll(String coll) { + return coll(Output.of(coll)); + } + + /** + * @param connectionName Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + * @return builder + * + */ + public Builder connectionName(Output connectionName) { + $.connectionName = connectionName; + return this; + } + + /** + * @param connectionName Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + * @return builder + * + */ + public Builder connectionName(String connectionName) { + return connectionName(Output.of(connectionName)); + } + + /** + * @param db Name of the database to use for the DLQ. + * + * @return builder + * + */ + public Builder db(Output db) { + $.db = db; + return this; + } + + /** + * @param db Name of the database to use for the DLQ. + * + * @return builder + * + */ + public Builder db(String db) { + return db(Output.of(db)); + } + + public StreamProcessorOptionsDlqArgs build() { + if ($.coll == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsDlqArgs", "coll"); + } + if ($.connectionName == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsDlqArgs", "connectionName"); + } + if ($.db == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsDlqArgs", "db"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorState.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorState.java new file mode 100644 index 00000000..029234cf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/inputs/StreamProcessorState.java @@ -0,0 +1,330 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamProcessorState extends com.pulumi.resources.ResourceArgs { + + public static final StreamProcessorState Empty = new StreamProcessorState(); + + /** + * Human-readable label that identifies the stream instance. + * + */ + @Import(name="instanceName") + private @Nullable Output instanceName; + + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public Optional> instanceName() { + return Optional.ofNullable(this.instanceName); + } + + /** + * Optional configuration for the stream processor. + * + */ + @Import(name="options") + private @Nullable Output options; + + /** + * @return Optional configuration for the stream processor. + * + */ + public Optional> options() { + return Optional.ofNullable(this.options); + } + + /** + * 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + */ + @Import(name="pipeline") + private @Nullable Output pipeline; + + /** + * @return 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + */ + public Optional> pipeline() { + return Optional.ofNullable(this.pipeline); + } + + /** + * Human-readable label that identifies the stream processor. + * + */ + @Import(name="processorName") + private @Nullable Output processorName; + + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public Optional> processorName() { + return Optional.ofNullable(this.processorName); + } + + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + @Import(name="projectId") + private @Nullable Output projectId; + + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public Optional> projectId() { + return Optional.ofNullable(this.projectId); + } + + /** + * 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * 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. + * + */ + @Import(name="stats") + private @Nullable Output stats; + + /** + * @return 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. + * + */ + public Optional> stats() { + return Optional.ofNullable(this.stats); + } + + private StreamProcessorState() {} + + private StreamProcessorState(StreamProcessorState $) { + this.instanceName = $.instanceName; + this.options = $.options; + this.pipeline = $.pipeline; + this.processorName = $.processorName; + this.projectId = $.projectId; + this.state = $.state; + this.stats = $.stats; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamProcessorState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamProcessorState $; + + public Builder() { + $ = new StreamProcessorState(); + } + + public Builder(StreamProcessorState defaults) { + $ = new StreamProcessorState(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(@Nullable Output instanceName) { + $.instanceName = instanceName; + return this; + } + + /** + * @param instanceName Human-readable label that identifies the stream instance. + * + * @return builder + * + */ + public Builder instanceName(String instanceName) { + return instanceName(Output.of(instanceName)); + } + + /** + * @param options Optional configuration for the stream processor. + * + * @return builder + * + */ + public Builder options(@Nullable Output options) { + $.options = options; + return this; + } + + /** + * @param options Optional configuration for the stream processor. + * + * @return builder + * + */ + public Builder options(StreamProcessorOptionsArgs options) { + return options(Output.of(options)); + } + + /** + * @param pipeline 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + * @return builder + * + */ + public Builder pipeline(@Nullable Output pipeline) { + $.pipeline = pipeline; + return this; + } + + /** + * @param pipeline 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + * + * @return builder + * + */ + public Builder pipeline(String pipeline) { + return pipeline(Output.of(pipeline)); + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(@Nullable Output processorName) { + $.processorName = processorName; + return this; + } + + /** + * @param processorName Human-readable label that identifies the stream processor. + * + * @return builder + * + */ + public Builder processorName(String processorName) { + return processorName(Output.of(processorName)); + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(@Nullable Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + /** + * @param state 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param stats 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. + * + * @return builder + * + */ + public Builder stats(@Nullable Output stats) { + $.stats = stats; + return this; + } + + /** + * @param stats 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. + * + * @return builder + * + */ + public Builder stats(String stats) { + return stats(Output.of(stats)); + } + + public StreamProcessorState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/AdvancedClusterAdvancedConfiguration.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/AdvancedClusterAdvancedConfiguration.java index 9035ef09..e4de5458 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/AdvancedClusterAdvancedConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/AdvancedClusterAdvancedConfiguration.java @@ -13,6 +13,11 @@ @CustomType public final class AdvancedClusterAdvancedConfiguration { + /** + * @return 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. + * + */ + private @Nullable Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -83,6 +88,13 @@ public final class AdvancedClusterAdvancedConfiguration { private @Nullable Integer transactionLifetimeLimitSeconds; private AdvancedClusterAdvancedConfiguration() {} + /** + * @return 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. + * + */ + public Optional changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return Optional.ofNullable(this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds); + } /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -183,6 +195,7 @@ public static Builder builder(AdvancedClusterAdvancedConfiguration defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; private @Nullable String defaultReadConcern; private @Nullable String defaultWriteConcern; private @Nullable Boolean failIndexKeyTooLong; @@ -197,6 +210,7 @@ public static final class Builder { public Builder() {} public Builder(AdvancedClusterAdvancedConfiguration defaults) { Objects.requireNonNull(defaults); + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = defaults.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = defaults.defaultReadConcern; this.defaultWriteConcern = defaults.defaultWriteConcern; this.failIndexKeyTooLong = defaults.failIndexKeyTooLong; @@ -210,6 +224,12 @@ public Builder(AdvancedClusterAdvancedConfiguration defaults) { this.transactionLifetimeLimitSeconds = defaults.transactionLifetimeLimitSeconds; } + @CustomType.Setter + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(@Nullable Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } @CustomType.Setter public Builder defaultReadConcern(@Nullable String defaultReadConcern) { @@ -278,6 +298,7 @@ public Builder transactionLifetimeLimitSeconds(@Nullable Integer transactionLife } public AdvancedClusterAdvancedConfiguration build() { final var _resultValue = new AdvancedClusterAdvancedConfiguration(); + _resultValue.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; _resultValue.defaultReadConcern = defaultReadConcern; _resultValue.defaultWriteConcern = defaultWriteConcern; _resultValue.failIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/ClusterAdvancedConfiguration.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/ClusterAdvancedConfiguration.java index e0f60610..d2334ce9 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/ClusterAdvancedConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/ClusterAdvancedConfiguration.java @@ -13,6 +13,11 @@ @CustomType public final class ClusterAdvancedConfiguration { + /** + * @return 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. + * + */ + private @Nullable Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -83,6 +88,13 @@ public final class ClusterAdvancedConfiguration { private @Nullable Integer transactionLifetimeLimitSeconds; private ClusterAdvancedConfiguration() {} + /** + * @return 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. + * + */ + public Optional changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return Optional.ofNullable(this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds); + } /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -183,6 +195,7 @@ public static Builder builder(ClusterAdvancedConfiguration defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; private @Nullable String defaultReadConcern; private @Nullable String defaultWriteConcern; private @Nullable Boolean failIndexKeyTooLong; @@ -197,6 +210,7 @@ public static final class Builder { public Builder() {} public Builder(ClusterAdvancedConfiguration defaults) { Objects.requireNonNull(defaults); + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = defaults.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = defaults.defaultReadConcern; this.defaultWriteConcern = defaults.defaultWriteConcern; this.failIndexKeyTooLong = defaults.failIndexKeyTooLong; @@ -210,6 +224,12 @@ public Builder(ClusterAdvancedConfiguration defaults) { this.transactionLifetimeLimitSeconds = defaults.transactionLifetimeLimitSeconds; } + @CustomType.Setter + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(@Nullable Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } @CustomType.Setter public Builder defaultReadConcern(@Nullable String defaultReadConcern) { @@ -278,6 +298,7 @@ public Builder transactionLifetimeLimitSeconds(@Nullable Integer transactionLife } public ClusterAdvancedConfiguration build() { final var _resultValue = new ClusterAdvancedConfiguration(); + _resultValue.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; _resultValue.defaultReadConcern = defaultReadConcern; _resultValue.defaultWriteConcern = defaultWriteConcern; _resultValue.failIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAwsKmsConfig.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAwsKmsConfig.java index 7a94ca72..36a02419 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAwsKmsConfig.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAwsKmsConfig.java @@ -12,64 +12,92 @@ @CustomType public final class EncryptionAtRestAwsKmsConfig { + /** + * @return 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). + * + */ private @Nullable String accessKeyId; /** - * @return The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * @return Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. * */ private @Nullable String customerMasterKeyId; /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ private @Nullable Boolean enabled; /** - * @return The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * @return 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. * */ private @Nullable String region; /** - * @return ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + * @return 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. * */ private @Nullable String roleId; + /** + * @return 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. + * + */ private @Nullable String secretAccessKey; + /** + * @return Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + private @Nullable Boolean valid; private EncryptionAtRestAwsKmsConfig() {} + /** + * @return 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). + * + */ public Optional accessKeyId() { return Optional.ofNullable(this.accessKeyId); } /** - * @return The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * @return Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. * */ public Optional customerMasterKeyId() { return Optional.ofNullable(this.customerMasterKeyId); } /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ public Optional enabled() { return Optional.ofNullable(this.enabled); } /** - * @return The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * @return 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. * */ public Optional region() { return Optional.ofNullable(this.region); } /** - * @return ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + * @return 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. * */ public Optional roleId() { return Optional.ofNullable(this.roleId); } + /** + * @return 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. + * + */ public Optional secretAccessKey() { return Optional.ofNullable(this.secretAccessKey); } + /** + * @return Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + public Optional valid() { + return Optional.ofNullable(this.valid); + } public static Builder builder() { return new Builder(); @@ -86,6 +114,7 @@ public static final class Builder { private @Nullable String region; private @Nullable String roleId; private @Nullable String secretAccessKey; + private @Nullable Boolean valid; public Builder() {} public Builder(EncryptionAtRestAwsKmsConfig defaults) { Objects.requireNonNull(defaults); @@ -95,6 +124,7 @@ public Builder(EncryptionAtRestAwsKmsConfig defaults) { this.region = defaults.region; this.roleId = defaults.roleId; this.secretAccessKey = defaults.secretAccessKey; + this.valid = defaults.valid; } @CustomType.Setter @@ -133,6 +163,12 @@ public Builder secretAccessKey(@Nullable String secretAccessKey) { this.secretAccessKey = secretAccessKey; return this; } + @CustomType.Setter + public Builder valid(@Nullable Boolean valid) { + + this.valid = valid; + return this; + } public EncryptionAtRestAwsKmsConfig build() { final var _resultValue = new EncryptionAtRestAwsKmsConfig(); _resultValue.accessKeyId = accessKeyId; @@ -141,6 +177,7 @@ public EncryptionAtRestAwsKmsConfig build() { _resultValue.region = region; _resultValue.roleId = roleId; _resultValue.secretAccessKey = secretAccessKey; + _resultValue.valid = valid; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAzureKeyVaultConfig.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAzureKeyVaultConfig.java index 13061a7d..c7b04f9f 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAzureKeyVaultConfig.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestAzureKeyVaultConfig.java @@ -13,115 +13,139 @@ @CustomType public final class EncryptionAtRestAzureKeyVaultConfig { /** - * @return The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * @return Azure environment in which your account credentials reside. * */ private @Nullable String azureEnvironment; /** - * @return The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * @return Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. * */ private @Nullable String clientId; /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ private @Nullable Boolean enabled; /** - * @return The unique identifier of a key in an Azure Key Vault. + * @return Web address with a unique key that identifies for your Azure Key Vault. * */ private @Nullable String keyIdentifier; /** - * @return The name of an Azure Key Vault containing your key. + * @return Unique string that identifies the Azure Key Vault that contains your key. * */ private @Nullable String keyVaultName; /** - * @return The name of the Azure Resource group that contains an Azure Key Vault. + * @return Enable connection to your Azure Key Vault over private networking. + * + */ + private @Nullable Boolean requirePrivateNetworking; + /** + * @return Name of the Azure resource group that contains your Azure Key Vault. * */ private @Nullable String resourceGroupName; /** - * @return The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * @return 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. * */ private @Nullable String secret; /** - * @return The unique identifier associated with an Azure subscription. + * @return Unique 36-hexadecimal character string that identifies your Azure subscription. * */ private @Nullable String subscriptionId; /** - * @return The unique identifier for an Azure AD tenant within an Azure subscription. + * @return Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. * */ private @Nullable String tenantId; + /** + * @return Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + */ + private @Nullable Boolean valid; private EncryptionAtRestAzureKeyVaultConfig() {} /** - * @return The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * @return Azure environment in which your account credentials reside. * */ public Optional azureEnvironment() { return Optional.ofNullable(this.azureEnvironment); } /** - * @return The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * @return Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. * */ public Optional clientId() { return Optional.ofNullable(this.clientId); } /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ public Optional enabled() { return Optional.ofNullable(this.enabled); } /** - * @return The unique identifier of a key in an Azure Key Vault. + * @return Web address with a unique key that identifies for your Azure Key Vault. * */ public Optional keyIdentifier() { return Optional.ofNullable(this.keyIdentifier); } /** - * @return The name of an Azure Key Vault containing your key. + * @return Unique string that identifies the Azure Key Vault that contains your key. * */ public Optional keyVaultName() { return Optional.ofNullable(this.keyVaultName); } /** - * @return The name of the Azure Resource group that contains an Azure Key Vault. + * @return Enable connection to your Azure Key Vault over private networking. + * + */ + public Optional requirePrivateNetworking() { + return Optional.ofNullable(this.requirePrivateNetworking); + } + /** + * @return Name of the Azure resource group that contains your Azure Key Vault. * */ public Optional resourceGroupName() { return Optional.ofNullable(this.resourceGroupName); } /** - * @return The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * @return 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. * */ public Optional secret() { return Optional.ofNullable(this.secret); } /** - * @return The unique identifier associated with an Azure subscription. + * @return Unique 36-hexadecimal character string that identifies your Azure subscription. * */ public Optional subscriptionId() { return Optional.ofNullable(this.subscriptionId); } /** - * @return The unique identifier for an Azure AD tenant within an Azure subscription. + * @return Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. * */ public Optional tenantId() { return Optional.ofNullable(this.tenantId); } + /** + * @return Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + */ + public Optional valid() { + return Optional.ofNullable(this.valid); + } public static Builder builder() { return new Builder(); @@ -137,10 +161,12 @@ public static final class Builder { private @Nullable Boolean enabled; private @Nullable String keyIdentifier; private @Nullable String keyVaultName; + private @Nullable Boolean requirePrivateNetworking; private @Nullable String resourceGroupName; private @Nullable String secret; private @Nullable String subscriptionId; private @Nullable String tenantId; + private @Nullable Boolean valid; public Builder() {} public Builder(EncryptionAtRestAzureKeyVaultConfig defaults) { Objects.requireNonNull(defaults); @@ -149,10 +175,12 @@ public Builder(EncryptionAtRestAzureKeyVaultConfig defaults) { this.enabled = defaults.enabled; this.keyIdentifier = defaults.keyIdentifier; this.keyVaultName = defaults.keyVaultName; + this.requirePrivateNetworking = defaults.requirePrivateNetworking; this.resourceGroupName = defaults.resourceGroupName; this.secret = defaults.secret; this.subscriptionId = defaults.subscriptionId; this.tenantId = defaults.tenantId; + this.valid = defaults.valid; } @CustomType.Setter @@ -186,6 +214,12 @@ public Builder keyVaultName(@Nullable String keyVaultName) { return this; } @CustomType.Setter + public Builder requirePrivateNetworking(@Nullable Boolean requirePrivateNetworking) { + + this.requirePrivateNetworking = requirePrivateNetworking; + return this; + } + @CustomType.Setter public Builder resourceGroupName(@Nullable String resourceGroupName) { this.resourceGroupName = resourceGroupName; @@ -209,6 +243,12 @@ public Builder tenantId(@Nullable String tenantId) { this.tenantId = tenantId; return this; } + @CustomType.Setter + public Builder valid(@Nullable Boolean valid) { + + this.valid = valid; + return this; + } public EncryptionAtRestAzureKeyVaultConfig build() { final var _resultValue = new EncryptionAtRestAzureKeyVaultConfig(); _resultValue.azureEnvironment = azureEnvironment; @@ -216,10 +256,12 @@ public EncryptionAtRestAzureKeyVaultConfig build() { _resultValue.enabled = enabled; _resultValue.keyIdentifier = keyIdentifier; _resultValue.keyVaultName = keyVaultName; + _resultValue.requirePrivateNetworking = requirePrivateNetworking; _resultValue.resourceGroupName = resourceGroupName; _resultValue.secret = secret; _resultValue.subscriptionId = subscriptionId; _resultValue.tenantId = tenantId; + _resultValue.valid = valid; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestGoogleCloudKmsConfig.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestGoogleCloudKmsConfig.java index a3a38c9e..6acb57ba 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestGoogleCloudKmsConfig.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/EncryptionAtRestGoogleCloudKmsConfig.java @@ -13,43 +13,55 @@ @CustomType public final class EncryptionAtRestGoogleCloudKmsConfig { /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ private @Nullable Boolean enabled; /** - * @return The Key Version Resource ID from your GCP account. + * @return Resource path that displays the key version resource ID for your Google Cloud KMS. * */ private @Nullable String keyVersionResourceId; /** - * @return String-formatted JSON object containing GCP KMS credentials from your GCP account. + * @return 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. * */ private @Nullable String serviceAccountKey; + /** + * @return Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + private @Nullable Boolean valid; private EncryptionAtRestGoogleCloudKmsConfig() {} /** - * @return Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. * */ public Optional enabled() { return Optional.ofNullable(this.enabled); } /** - * @return The Key Version Resource ID from your GCP account. + * @return Resource path that displays the key version resource ID for your Google Cloud KMS. * */ public Optional keyVersionResourceId() { return Optional.ofNullable(this.keyVersionResourceId); } /** - * @return String-formatted JSON object containing GCP KMS credentials from your GCP account. + * @return 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. * */ public Optional serviceAccountKey() { return Optional.ofNullable(this.serviceAccountKey); } + /** + * @return Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + public Optional valid() { + return Optional.ofNullable(this.valid); + } public static Builder builder() { return new Builder(); @@ -63,12 +75,14 @@ public static final class Builder { private @Nullable Boolean enabled; private @Nullable String keyVersionResourceId; private @Nullable String serviceAccountKey; + private @Nullable Boolean valid; public Builder() {} public Builder(EncryptionAtRestGoogleCloudKmsConfig defaults) { Objects.requireNonNull(defaults); this.enabled = defaults.enabled; this.keyVersionResourceId = defaults.keyVersionResourceId; this.serviceAccountKey = defaults.serviceAccountKey; + this.valid = defaults.valid; } @CustomType.Setter @@ -89,11 +103,18 @@ public Builder serviceAccountKey(@Nullable String serviceAccountKey) { this.serviceAccountKey = serviceAccountKey; return this; } + @CustomType.Setter + public Builder valid(@Nullable Boolean valid) { + + this.valid = valid; + return this; + } public EncryptionAtRestGoogleCloudKmsConfig build() { final var _resultValue = new EncryptionAtRestGoogleCloudKmsConfig(); _resultValue.enabled = enabled; _resultValue.keyVersionResourceId = keyVersionResourceId; _resultValue.serviceAccountKey = serviceAccountKey; + _resultValue.valid = valid; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterAdvancedConfiguration.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterAdvancedConfiguration.java index 4bcb61f0..002c9c1f 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterAdvancedConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterAdvancedConfiguration.java @@ -12,6 +12,11 @@ @CustomType public final class GetAdvancedClusterAdvancedConfiguration { + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -77,6 +82,13 @@ public final class GetAdvancedClusterAdvancedConfiguration { private Integer transactionLifetimeLimitSeconds; private GetAdvancedClusterAdvancedConfiguration() {} + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + public Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + } /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -172,6 +184,7 @@ public static Builder builder(GetAdvancedClusterAdvancedConfiguration defaults) } @CustomType.Builder public static final class Builder { + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; private String defaultReadConcern; private String defaultWriteConcern; private Boolean failIndexKeyTooLong; @@ -186,6 +199,7 @@ public static final class Builder { public Builder() {} public Builder(GetAdvancedClusterAdvancedConfiguration defaults) { Objects.requireNonNull(defaults); + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = defaults.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = defaults.defaultReadConcern; this.defaultWriteConcern = defaults.defaultWriteConcern; this.failIndexKeyTooLong = defaults.failIndexKeyTooLong; @@ -199,6 +213,14 @@ public Builder(GetAdvancedClusterAdvancedConfiguration defaults) { this.transactionLifetimeLimitSeconds = defaults.transactionLifetimeLimitSeconds; } + @CustomType.Setter + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + if (changeStreamOptionsPreAndPostImagesExpireAfterSeconds == null) { + throw new MissingRequiredPropertyException("GetAdvancedClusterAdvancedConfiguration", "changeStreamOptionsPreAndPostImagesExpireAfterSeconds"); + } + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } @CustomType.Setter public Builder defaultReadConcern(String defaultReadConcern) { if (defaultReadConcern == null) { @@ -289,6 +311,7 @@ public Builder transactionLifetimeLimitSeconds(Integer transactionLifetimeLimitS } public GetAdvancedClusterAdvancedConfiguration build() { final var _resultValue = new GetAdvancedClusterAdvancedConfiguration(); + _resultValue.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; _resultValue.defaultReadConcern = defaultReadConcern; _resultValue.defaultWriteConcern = defaultWriteConcern; _resultValue.failIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterResult.java index 78e76c31..579367f7 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterResult.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClusterResult.java @@ -71,10 +71,10 @@ public final class GetAdvancedClusterResult { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ private List labels; /** * @return Version of the cluster to deploy. @@ -98,6 +98,11 @@ public final class GetAdvancedClusterResult { */ private Boolean pitEnabled; private String projectId; + /** + * @return (Optional) Replica set scaling mode for your cluster. + * + */ + private String replicaSetScalingStrategy; /** * @return List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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. * @@ -201,10 +206,10 @@ public String id() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public List labels() { return this.labels; } @@ -242,6 +247,13 @@ public Boolean pitEnabled() { public String projectId() { return this.projectId; } + /** + * @return (Optional) Replica set scaling mode for your cluster. + * + */ + public String replicaSetScalingStrategy() { + return this.replicaSetScalingStrategy; + } /** * @return List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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. * @@ -314,6 +326,7 @@ public static final class Builder { private Boolean paused; private Boolean pitEnabled; private String projectId; + private String replicaSetScalingStrategy; private List replicationSpecs; private String rootCertType; private String stateName; @@ -341,6 +354,7 @@ public Builder(GetAdvancedClusterResult defaults) { this.paused = defaults.paused; this.pitEnabled = defaults.pitEnabled; this.projectId = defaults.projectId; + this.replicaSetScalingStrategy = defaults.replicaSetScalingStrategy; this.replicationSpecs = defaults.replicationSpecs; this.rootCertType = defaults.rootCertType; this.stateName = defaults.stateName; @@ -499,6 +513,14 @@ public Builder projectId(String projectId) { return this; } @CustomType.Setter + public Builder replicaSetScalingStrategy(String replicaSetScalingStrategy) { + if (replicaSetScalingStrategy == null) { + throw new MissingRequiredPropertyException("GetAdvancedClusterResult", "replicaSetScalingStrategy"); + } + this.replicaSetScalingStrategy = replicaSetScalingStrategy; + return this; + } + @CustomType.Setter public Builder replicationSpecs(List replicationSpecs) { if (replicationSpecs == null) { throw new MissingRequiredPropertyException("GetAdvancedClusterResult", "replicationSpecs"); @@ -577,6 +599,7 @@ public GetAdvancedClusterResult build() { _resultValue.paused = paused; _resultValue.pitEnabled = pitEnabled; _resultValue.projectId = projectId; + _resultValue.replicaSetScalingStrategy = replicaSetScalingStrategy; _resultValue.replicationSpecs = replicationSpecs; _resultValue.rootCertType = rootCertType; _resultValue.stateName = stateName; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResult.java index 79387811..d6df6744 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResult.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResult.java @@ -64,10 +64,10 @@ public final class GetAdvancedClustersResult { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ private List labels; /** * @return Version of the cluster to deploy. @@ -90,6 +90,11 @@ public final class GetAdvancedClustersResult { * */ private Boolean pitEnabled; + /** + * @return (Optional) Replica set scaling mode for your cluster. + * + */ + private String replicaSetScalingStrategy; /** * @return List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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 * @@ -185,10 +190,10 @@ public Boolean globalClusterSelfManagedSharding() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public List labels() { return this.labels; } @@ -223,6 +228,13 @@ public Boolean paused() { public Boolean pitEnabled() { return this.pitEnabled; } + /** + * @return (Optional) Replica set scaling mode for your cluster. + * + */ + public String replicaSetScalingStrategy() { + return this.replicaSetScalingStrategy; + } /** * @return List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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 * @@ -290,6 +302,7 @@ public static final class Builder { private String name; private Boolean paused; private Boolean pitEnabled; + private String replicaSetScalingStrategy; private List replicationSpecs; private String rootCertType; private String stateName; @@ -314,6 +327,7 @@ public Builder(GetAdvancedClustersResult defaults) { this.name = defaults.name; this.paused = defaults.paused; this.pitEnabled = defaults.pitEnabled; + this.replicaSetScalingStrategy = defaults.replicaSetScalingStrategy; this.replicationSpecs = defaults.replicationSpecs; this.rootCertType = defaults.rootCertType; this.stateName = defaults.stateName; @@ -455,6 +469,14 @@ public Builder pitEnabled(Boolean pitEnabled) { return this; } @CustomType.Setter + public Builder replicaSetScalingStrategy(String replicaSetScalingStrategy) { + if (replicaSetScalingStrategy == null) { + throw new MissingRequiredPropertyException("GetAdvancedClustersResult", "replicaSetScalingStrategy"); + } + this.replicaSetScalingStrategy = replicaSetScalingStrategy; + return this; + } + @CustomType.Setter public Builder replicationSpecs(List replicationSpecs) { if (replicationSpecs == null) { throw new MissingRequiredPropertyException("GetAdvancedClustersResult", "replicationSpecs"); @@ -525,6 +547,7 @@ public GetAdvancedClustersResult build() { _resultValue.name = name; _resultValue.paused = paused; _resultValue.pitEnabled = pitEnabled; + _resultValue.replicaSetScalingStrategy = replicaSetScalingStrategy; _resultValue.replicationSpecs = replicationSpecs; _resultValue.rootCertType = rootCertType; _resultValue.stateName = stateName; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResultAdvancedConfiguration.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResultAdvancedConfiguration.java index 1c10b7d4..7cb1d053 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResultAdvancedConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetAdvancedClustersResultAdvancedConfiguration.java @@ -12,6 +12,11 @@ @CustomType public final class GetAdvancedClustersResultAdvancedConfiguration { + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -70,9 +75,20 @@ public final class GetAdvancedClustersResultAdvancedConfiguration { * */ private Integer sampleSizeBiConnector; + /** + * @return (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. + * + */ private Integer transactionLifetimeLimitSeconds; private GetAdvancedClustersResultAdvancedConfiguration() {} + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + public Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + } /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -151,6 +167,10 @@ public Integer sampleRefreshIntervalBiConnector() { public Integer sampleSizeBiConnector() { return this.sampleSizeBiConnector; } + /** + * @return (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. + * + */ public Integer transactionLifetimeLimitSeconds() { return this.transactionLifetimeLimitSeconds; } @@ -164,6 +184,7 @@ public static Builder builder(GetAdvancedClustersResultAdvancedConfiguration def } @CustomType.Builder public static final class Builder { + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; private String defaultReadConcern; private String defaultWriteConcern; private Boolean failIndexKeyTooLong; @@ -178,6 +199,7 @@ public static final class Builder { public Builder() {} public Builder(GetAdvancedClustersResultAdvancedConfiguration defaults) { Objects.requireNonNull(defaults); + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = defaults.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = defaults.defaultReadConcern; this.defaultWriteConcern = defaults.defaultWriteConcern; this.failIndexKeyTooLong = defaults.failIndexKeyTooLong; @@ -191,6 +213,14 @@ public Builder(GetAdvancedClustersResultAdvancedConfiguration defaults) { this.transactionLifetimeLimitSeconds = defaults.transactionLifetimeLimitSeconds; } + @CustomType.Setter + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + if (changeStreamOptionsPreAndPostImagesExpireAfterSeconds == null) { + throw new MissingRequiredPropertyException("GetAdvancedClustersResultAdvancedConfiguration", "changeStreamOptionsPreAndPostImagesExpireAfterSeconds"); + } + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } @CustomType.Setter public Builder defaultReadConcern(String defaultReadConcern) { if (defaultReadConcern == null) { @@ -281,6 +311,7 @@ public Builder transactionLifetimeLimitSeconds(Integer transactionLifetimeLimitS } public GetAdvancedClustersResultAdvancedConfiguration build() { final var _resultValue = new GetAdvancedClustersResultAdvancedConfiguration(); + _resultValue.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; _resultValue.defaultReadConcern = defaultReadConcern; _resultValue.defaultWriteConcern = defaultWriteConcern; _resultValue.failIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterAdvancedConfiguration.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterAdvancedConfiguration.java index bea5e4c1..cd07f6e7 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterAdvancedConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterAdvancedConfiguration.java @@ -12,6 +12,11 @@ @CustomType public final class GetClusterAdvancedConfiguration { + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -77,6 +82,13 @@ public final class GetClusterAdvancedConfiguration { private Integer transactionLifetimeLimitSeconds; private GetClusterAdvancedConfiguration() {} + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + public Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + } /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -172,6 +184,7 @@ public static Builder builder(GetClusterAdvancedConfiguration defaults) { } @CustomType.Builder public static final class Builder { + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; private String defaultReadConcern; private String defaultWriteConcern; private Boolean failIndexKeyTooLong; @@ -186,6 +199,7 @@ public static final class Builder { public Builder() {} public Builder(GetClusterAdvancedConfiguration defaults) { Objects.requireNonNull(defaults); + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = defaults.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = defaults.defaultReadConcern; this.defaultWriteConcern = defaults.defaultWriteConcern; this.failIndexKeyTooLong = defaults.failIndexKeyTooLong; @@ -199,6 +213,14 @@ public Builder(GetClusterAdvancedConfiguration defaults) { this.transactionLifetimeLimitSeconds = defaults.transactionLifetimeLimitSeconds; } + @CustomType.Setter + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + if (changeStreamOptionsPreAndPostImagesExpireAfterSeconds == null) { + throw new MissingRequiredPropertyException("GetClusterAdvancedConfiguration", "changeStreamOptionsPreAndPostImagesExpireAfterSeconds"); + } + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } @CustomType.Setter public Builder defaultReadConcern(String defaultReadConcern) { if (defaultReadConcern == null) { @@ -289,6 +311,7 @@ public Builder transactionLifetimeLimitSeconds(Integer transactionLifetimeLimitS } public GetClusterAdvancedConfiguration build() { final var _resultValue = new GetClusterAdvancedConfiguration(); + _resultValue.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; _resultValue.defaultReadConcern = defaultReadConcern; _resultValue.defaultWriteConcern = defaultWriteConcern; _resultValue.failIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterResult.java index c295d6c2..c549f113 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterResult.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClusterResult.java @@ -90,10 +90,10 @@ public final class GetClusterResult { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ private List labels; /** * @return Indicates the version of the cluster to deploy. @@ -332,10 +332,10 @@ public String id() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public List labels() { return this.labels; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResult.java index e8bfeabe..283ed260 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResult.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResult.java @@ -85,10 +85,10 @@ public final class GetClustersResult { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ private List labels; /** * @return Indicates the version of the cluster to deploy. @@ -322,10 +322,10 @@ public String encryptionAtRestProvider() { * @return Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * * @deprecated - * This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * This parameter is deprecated and will be removed in the future. Please transition to tags * */ - @Deprecated /* This parameter is deprecated and will be removed by September 2024. Please transition to tags. */ + @Deprecated /* This parameter is deprecated and will be removed in the future. Please transition to tags */ public List labels() { return this.labels; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResultAdvancedConfiguration.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResultAdvancedConfiguration.java index 96f1d8f8..493bd591 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResultAdvancedConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetClustersResultAdvancedConfiguration.java @@ -12,6 +12,11 @@ @CustomType public final class GetClustersResultAdvancedConfiguration { + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -73,6 +78,13 @@ public final class GetClustersResultAdvancedConfiguration { private Integer transactionLifetimeLimitSeconds; private GetClustersResultAdvancedConfiguration() {} + /** + * @return (Optional) The minimum pre- and post-image retention time in seconds. + * + */ + public Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds() { + return this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + } /** * @return [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -164,6 +176,7 @@ public static Builder builder(GetClustersResultAdvancedConfiguration defaults) { } @CustomType.Builder public static final class Builder { + private Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds; private String defaultReadConcern; private String defaultWriteConcern; private Boolean failIndexKeyTooLong; @@ -178,6 +191,7 @@ public static final class Builder { public Builder() {} public Builder(GetClustersResultAdvancedConfiguration defaults) { Objects.requireNonNull(defaults); + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = defaults.changeStreamOptionsPreAndPostImagesExpireAfterSeconds; this.defaultReadConcern = defaults.defaultReadConcern; this.defaultWriteConcern = defaults.defaultWriteConcern; this.failIndexKeyTooLong = defaults.failIndexKeyTooLong; @@ -191,6 +205,14 @@ public Builder(GetClustersResultAdvancedConfiguration defaults) { this.transactionLifetimeLimitSeconds = defaults.transactionLifetimeLimitSeconds; } + @CustomType.Setter + public Builder changeStreamOptionsPreAndPostImagesExpireAfterSeconds(Integer changeStreamOptionsPreAndPostImagesExpireAfterSeconds) { + if (changeStreamOptionsPreAndPostImagesExpireAfterSeconds == null) { + throw new MissingRequiredPropertyException("GetClustersResultAdvancedConfiguration", "changeStreamOptionsPreAndPostImagesExpireAfterSeconds"); + } + this.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; + return this; + } @CustomType.Setter public Builder defaultReadConcern(String defaultReadConcern) { if (defaultReadConcern == null) { @@ -281,6 +303,7 @@ public Builder transactionLifetimeLimitSeconds(Integer transactionLifetimeLimitS } public GetClustersResultAdvancedConfiguration build() { final var _resultValue = new GetClustersResultAdvancedConfiguration(); + _resultValue.changeStreamOptionsPreAndPostImagesExpireAfterSeconds = changeStreamOptionsPreAndPostImagesExpireAfterSeconds; _resultValue.defaultReadConcern = defaultReadConcern; _resultValue.defaultWriteConcern = defaultWriteConcern; _resultValue.failIndexKeyTooLong = failIndexKeyTooLong; diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestAwsKmsConfig.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestAwsKmsConfig.java new file mode 100644 index 00000000..ab454aff --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestAwsKmsConfig.java @@ -0,0 +1,197 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestAwsKmsConfig { + /** + * @return 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). + * + */ + private String accessKeyId; + /** + * @return Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + * + */ + private String customerMasterKeyId; + /** + * @return Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + * + */ + private Boolean enabled; + /** + * @return 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. + * + */ + private String region; + /** + * @return 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. + * + */ + private String roleId; + /** + * @return 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. + * + */ + private String secretAccessKey; + /** + * @return Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + private Boolean valid; + + private GetEncryptionAtRestAwsKmsConfig() {} + /** + * @return 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). + * + */ + public String accessKeyId() { + return this.accessKeyId; + } + /** + * @return Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + * + */ + public String customerMasterKeyId() { + return this.customerMasterKeyId; + } + /** + * @return Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + * + */ + public Boolean enabled() { + return this.enabled; + } + /** + * @return 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. + * + */ + public String region() { + return this.region; + } + /** + * @return 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. + * + */ + public String roleId() { + return this.roleId; + } + /** + * @return 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. + * + */ + public String secretAccessKey() { + return this.secretAccessKey; + } + /** + * @return Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + public Boolean valid() { + return this.valid; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestAwsKmsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String accessKeyId; + private String customerMasterKeyId; + private Boolean enabled; + private String region; + private String roleId; + private String secretAccessKey; + private Boolean valid; + public Builder() {} + public Builder(GetEncryptionAtRestAwsKmsConfig defaults) { + Objects.requireNonNull(defaults); + this.accessKeyId = defaults.accessKeyId; + this.customerMasterKeyId = defaults.customerMasterKeyId; + this.enabled = defaults.enabled; + this.region = defaults.region; + this.roleId = defaults.roleId; + this.secretAccessKey = defaults.secretAccessKey; + this.valid = defaults.valid; + } + + @CustomType.Setter + public Builder accessKeyId(String accessKeyId) { + if (accessKeyId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "accessKeyId"); + } + this.accessKeyId = accessKeyId; + return this; + } + @CustomType.Setter + public Builder customerMasterKeyId(String customerMasterKeyId) { + if (customerMasterKeyId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "customerMasterKeyId"); + } + this.customerMasterKeyId = customerMasterKeyId; + return this; + } + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder region(String region) { + if (region == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "region"); + } + this.region = region; + return this; + } + @CustomType.Setter + public Builder roleId(String roleId) { + if (roleId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "roleId"); + } + this.roleId = roleId; + return this; + } + @CustomType.Setter + public Builder secretAccessKey(String secretAccessKey) { + if (secretAccessKey == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "secretAccessKey"); + } + this.secretAccessKey = secretAccessKey; + return this; + } + @CustomType.Setter + public Builder valid(Boolean valid) { + if (valid == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAwsKmsConfig", "valid"); + } + this.valid = valid; + return this; + } + public GetEncryptionAtRestAwsKmsConfig build() { + final var _resultValue = new GetEncryptionAtRestAwsKmsConfig(); + _resultValue.accessKeyId = accessKeyId; + _resultValue.customerMasterKeyId = customerMasterKeyId; + _resultValue.enabled = enabled; + _resultValue.region = region; + _resultValue.roleId = roleId; + _resultValue.secretAccessKey = secretAccessKey; + _resultValue.valid = valid; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestAzureKeyVaultConfig.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestAzureKeyVaultConfig.java new file mode 100644 index 00000000..77b86bd8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestAzureKeyVaultConfig.java @@ -0,0 +1,289 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestAzureKeyVaultConfig { + /** + * @return Azure environment in which your account credentials reside. + * + */ + private String azureEnvironment; + /** + * @return Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + * + */ + private String clientId; + /** + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + * + */ + private Boolean enabled; + /** + * @return Web address with a unique key that identifies for your Azure Key Vault. + * + */ + private String keyIdentifier; + /** + * @return Unique string that identifies the Azure Key Vault that contains your key. + * + */ + private String keyVaultName; + /** + * @return Enable connection to your Azure Key Vault over private networking. + * + */ + private Boolean requirePrivateNetworking; + /** + * @return Name of the Azure resource group that contains your Azure Key Vault. + * + */ + private String resourceGroupName; + /** + * @return 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. + * + */ + private String secret; + /** + * @return Unique 36-hexadecimal character string that identifies your Azure subscription. + * + */ + private String subscriptionId; + /** + * @return Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + * + */ + private String tenantId; + /** + * @return Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + */ + private Boolean valid; + + private GetEncryptionAtRestAzureKeyVaultConfig() {} + /** + * @return Azure environment in which your account credentials reside. + * + */ + public String azureEnvironment() { + return this.azureEnvironment; + } + /** + * @return Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + * + */ + public String clientId() { + return this.clientId; + } + /** + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + * + */ + public Boolean enabled() { + return this.enabled; + } + /** + * @return Web address with a unique key that identifies for your Azure Key Vault. + * + */ + public String keyIdentifier() { + return this.keyIdentifier; + } + /** + * @return Unique string that identifies the Azure Key Vault that contains your key. + * + */ + public String keyVaultName() { + return this.keyVaultName; + } + /** + * @return Enable connection to your Azure Key Vault over private networking. + * + */ + public Boolean requirePrivateNetworking() { + return this.requirePrivateNetworking; + } + /** + * @return Name of the Azure resource group that contains your Azure Key Vault. + * + */ + public String resourceGroupName() { + return this.resourceGroupName; + } + /** + * @return 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. + * + */ + public String secret() { + return this.secret; + } + /** + * @return Unique 36-hexadecimal character string that identifies your Azure subscription. + * + */ + public String subscriptionId() { + return this.subscriptionId; + } + /** + * @return Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + * + */ + public String tenantId() { + return this.tenantId; + } + /** + * @return Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + * + */ + public Boolean valid() { + return this.valid; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestAzureKeyVaultConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String azureEnvironment; + private String clientId; + private Boolean enabled; + private String keyIdentifier; + private String keyVaultName; + private Boolean requirePrivateNetworking; + private String resourceGroupName; + private String secret; + private String subscriptionId; + private String tenantId; + private Boolean valid; + public Builder() {} + public Builder(GetEncryptionAtRestAzureKeyVaultConfig defaults) { + Objects.requireNonNull(defaults); + this.azureEnvironment = defaults.azureEnvironment; + this.clientId = defaults.clientId; + this.enabled = defaults.enabled; + this.keyIdentifier = defaults.keyIdentifier; + this.keyVaultName = defaults.keyVaultName; + this.requirePrivateNetworking = defaults.requirePrivateNetworking; + this.resourceGroupName = defaults.resourceGroupName; + this.secret = defaults.secret; + this.subscriptionId = defaults.subscriptionId; + this.tenantId = defaults.tenantId; + this.valid = defaults.valid; + } + + @CustomType.Setter + public Builder azureEnvironment(String azureEnvironment) { + if (azureEnvironment == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "azureEnvironment"); + } + this.azureEnvironment = azureEnvironment; + return this; + } + @CustomType.Setter + public Builder clientId(String clientId) { + if (clientId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "clientId"); + } + this.clientId = clientId; + return this; + } + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder keyIdentifier(String keyIdentifier) { + if (keyIdentifier == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "keyIdentifier"); + } + this.keyIdentifier = keyIdentifier; + return this; + } + @CustomType.Setter + public Builder keyVaultName(String keyVaultName) { + if (keyVaultName == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "keyVaultName"); + } + this.keyVaultName = keyVaultName; + return this; + } + @CustomType.Setter + public Builder requirePrivateNetworking(Boolean requirePrivateNetworking) { + if (requirePrivateNetworking == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "requirePrivateNetworking"); + } + this.requirePrivateNetworking = requirePrivateNetworking; + return this; + } + @CustomType.Setter + public Builder resourceGroupName(String resourceGroupName) { + if (resourceGroupName == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "resourceGroupName"); + } + this.resourceGroupName = resourceGroupName; + return this; + } + @CustomType.Setter + public Builder secret(String secret) { + if (secret == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "secret"); + } + this.secret = secret; + return this; + } + @CustomType.Setter + public Builder subscriptionId(String subscriptionId) { + if (subscriptionId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "subscriptionId"); + } + this.subscriptionId = subscriptionId; + return this; + } + @CustomType.Setter + public Builder tenantId(String tenantId) { + if (tenantId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "tenantId"); + } + this.tenantId = tenantId; + return this; + } + @CustomType.Setter + public Builder valid(Boolean valid) { + if (valid == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestAzureKeyVaultConfig", "valid"); + } + this.valid = valid; + return this; + } + public GetEncryptionAtRestAzureKeyVaultConfig build() { + final var _resultValue = new GetEncryptionAtRestAzureKeyVaultConfig(); + _resultValue.azureEnvironment = azureEnvironment; + _resultValue.clientId = clientId; + _resultValue.enabled = enabled; + _resultValue.keyIdentifier = keyIdentifier; + _resultValue.keyVaultName = keyVaultName; + _resultValue.requirePrivateNetworking = requirePrivateNetworking; + _resultValue.resourceGroupName = resourceGroupName; + _resultValue.secret = secret; + _resultValue.subscriptionId = subscriptionId; + _resultValue.tenantId = tenantId; + _resultValue.valid = valid; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestGoogleCloudKmsConfig.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestGoogleCloudKmsConfig.java new file mode 100644 index 00000000..e0093fc0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestGoogleCloudKmsConfig.java @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestGoogleCloudKmsConfig { + /** + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + * + */ + private Boolean enabled; + /** + * @return Resource path that displays the key version resource ID for your Google Cloud KMS. + * + */ + private String keyVersionResourceId; + /** + * @return 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. + * + */ + private String serviceAccountKey; + /** + * @return Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + private Boolean valid; + + private GetEncryptionAtRestGoogleCloudKmsConfig() {} + /** + * @return Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + * + */ + public Boolean enabled() { + return this.enabled; + } + /** + * @return Resource path that displays the key version resource ID for your Google Cloud KMS. + * + */ + public String keyVersionResourceId() { + return this.keyVersionResourceId; + } + /** + * @return 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. + * + */ + public String serviceAccountKey() { + return this.serviceAccountKey; + } + /** + * @return Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + * + */ + public Boolean valid() { + return this.valid; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestGoogleCloudKmsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + private String keyVersionResourceId; + private String serviceAccountKey; + private Boolean valid; + public Builder() {} + public Builder(GetEncryptionAtRestGoogleCloudKmsConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.keyVersionResourceId = defaults.keyVersionResourceId; + this.serviceAccountKey = defaults.serviceAccountKey; + this.valid = defaults.valid; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestGoogleCloudKmsConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder keyVersionResourceId(String keyVersionResourceId) { + if (keyVersionResourceId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestGoogleCloudKmsConfig", "keyVersionResourceId"); + } + this.keyVersionResourceId = keyVersionResourceId; + return this; + } + @CustomType.Setter + public Builder serviceAccountKey(String serviceAccountKey) { + if (serviceAccountKey == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestGoogleCloudKmsConfig", "serviceAccountKey"); + } + this.serviceAccountKey = serviceAccountKey; + return this; + } + @CustomType.Setter + public Builder valid(Boolean valid) { + if (valid == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestGoogleCloudKmsConfig", "valid"); + } + this.valid = valid; + return this; + } + public GetEncryptionAtRestGoogleCloudKmsConfig build() { + final var _resultValue = new GetEncryptionAtRestGoogleCloudKmsConfig(); + _resultValue.enabled = enabled; + _resultValue.keyVersionResourceId = keyVersionResourceId; + _resultValue.serviceAccountKey = serviceAccountKey; + _resultValue.valid = valid; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointResult.java new file mode 100644 index 00000000..09034c71 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointResult.java @@ -0,0 +1,196 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestPrivateEndpointResult { + /** + * @return Label that identifies the cloud provider of the private endpoint. + * + */ + private String cloudProvider; + /** + * @return Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + private String errorMessage; + /** + * @return Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + private String id; + /** + * @return Connection name of the Azure Private Endpoint. + * + */ + private String privateEndpointConnectionName; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + private String projectId; + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + private String regionName; + /** + * @return State of the Encryption At Rest private endpoint. + * + */ + private String status; + + private GetEncryptionAtRestPrivateEndpointResult() {} + /** + * @return Label that identifies the cloud provider of the private endpoint. + * + */ + public String cloudProvider() { + return this.cloudProvider; + } + /** + * @return Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + public String errorMessage() { + return this.errorMessage; + } + /** + * @return Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + public String id() { + return this.id; + } + /** + * @return Connection name of the Azure Private Endpoint. + * + */ + public String privateEndpointConnectionName() { + return this.privateEndpointConnectionName; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + public String regionName() { + return this.regionName; + } + /** + * @return State of the Encryption At Rest private endpoint. + * + */ + public String status() { + return this.status; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestPrivateEndpointResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String cloudProvider; + private String errorMessage; + private String id; + private String privateEndpointConnectionName; + private String projectId; + private String regionName; + private String status; + public Builder() {} + public Builder(GetEncryptionAtRestPrivateEndpointResult defaults) { + Objects.requireNonNull(defaults); + this.cloudProvider = defaults.cloudProvider; + this.errorMessage = defaults.errorMessage; + this.id = defaults.id; + this.privateEndpointConnectionName = defaults.privateEndpointConnectionName; + this.projectId = defaults.projectId; + this.regionName = defaults.regionName; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder cloudProvider(String cloudProvider) { + if (cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "cloudProvider"); + } + this.cloudProvider = cloudProvider; + return this; + } + @CustomType.Setter + public Builder errorMessage(String errorMessage) { + if (errorMessage == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "errorMessage"); + } + this.errorMessage = errorMessage; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder privateEndpointConnectionName(String privateEndpointConnectionName) { + if (privateEndpointConnectionName == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "privateEndpointConnectionName"); + } + this.privateEndpointConnectionName = privateEndpointConnectionName; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder regionName(String regionName) { + if (regionName == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "regionName"); + } + this.regionName = regionName; + return this; + } + @CustomType.Setter + public Builder status(String status) { + if (status == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointResult", "status"); + } + this.status = status; + return this; + } + public GetEncryptionAtRestPrivateEndpointResult build() { + final var _resultValue = new GetEncryptionAtRestPrivateEndpointResult(); + _resultValue.cloudProvider = cloudProvider; + _resultValue.errorMessage = errorMessage; + _resultValue.id = id; + _resultValue.privateEndpointConnectionName = privateEndpointConnectionName; + _resultValue.projectId = projectId; + _resultValue.regionName = regionName; + _resultValue.status = status; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointsInvokeResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointsInvokeResult.java new file mode 100644 index 00000000..0180d424 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointsInvokeResult.java @@ -0,0 +1,132 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestPrivateEndpointsResult; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestPrivateEndpointsInvokeResult { + /** + * @return Human-readable label that identifies the cloud provider for the private endpoints to return. + * + */ + private String cloudProvider; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + private String projectId; + /** + * @return List of returned documents that MongoDB Cloud providers when completing this request. + * + */ + private List results; + + private GetEncryptionAtRestPrivateEndpointsInvokeResult() {} + /** + * @return Human-readable label that identifies the cloud provider for the private endpoints to return. + * + */ + public String cloudProvider() { + return this.cloudProvider; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + /** + * @return List of returned documents that MongoDB Cloud providers when completing this request. + * + */ + public List results() { + return this.results; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestPrivateEndpointsInvokeResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String cloudProvider; + private String id; + private String projectId; + private List results; + public Builder() {} + public Builder(GetEncryptionAtRestPrivateEndpointsInvokeResult defaults) { + Objects.requireNonNull(defaults); + this.cloudProvider = defaults.cloudProvider; + this.id = defaults.id; + this.projectId = defaults.projectId; + this.results = defaults.results; + } + + @CustomType.Setter + public Builder cloudProvider(String cloudProvider) { + if (cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsInvokeResult", "cloudProvider"); + } + this.cloudProvider = cloudProvider; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsInvokeResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsInvokeResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder results(List results) { + if (results == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsInvokeResult", "results"); + } + this.results = results; + return this; + } + public Builder results(GetEncryptionAtRestPrivateEndpointsResult... results) { + return results(List.of(results)); + } + public GetEncryptionAtRestPrivateEndpointsInvokeResult build() { + final var _resultValue = new GetEncryptionAtRestPrivateEndpointsInvokeResult(); + _resultValue.cloudProvider = cloudProvider; + _resultValue.id = id; + _resultValue.projectId = projectId; + _resultValue.results = results; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointsResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointsResult.java new file mode 100644 index 00000000..14eee0f5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestPrivateEndpointsResult.java @@ -0,0 +1,196 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestPrivateEndpointsResult { + /** + * @return Label that identifies the cloud provider of the private endpoint. + * + */ + private String cloudProvider; + /** + * @return Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + private String errorMessage; + /** + * @return Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + private String id; + /** + * @return Connection name of the Azure Private Endpoint. + * + */ + private String privateEndpointConnectionName; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + private String projectId; + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + private String regionName; + /** + * @return State of the Encryption At Rest private endpoint. + * + */ + private String status; + + private GetEncryptionAtRestPrivateEndpointsResult() {} + /** + * @return Label that identifies the cloud provider of the private endpoint. + * + */ + public String cloudProvider() { + return this.cloudProvider; + } + /** + * @return Error message for failures associated with the Encryption At Rest private endpoint. + * + */ + public String errorMessage() { + return this.errorMessage; + } + /** + * @return Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + * + */ + public String id() { + return this.id; + } + /** + * @return Connection name of the Azure Private Endpoint. + * + */ + public String privateEndpointConnectionName() { + return this.privateEndpointConnectionName; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + /** + * @return Cloud provider region in which the Encryption At Rest private endpoint is located. + * + */ + public String regionName() { + return this.regionName; + } + /** + * @return State of the Encryption At Rest private endpoint. + * + */ + public String status() { + return this.status; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestPrivateEndpointsResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String cloudProvider; + private String errorMessage; + private String id; + private String privateEndpointConnectionName; + private String projectId; + private String regionName; + private String status; + public Builder() {} + public Builder(GetEncryptionAtRestPrivateEndpointsResult defaults) { + Objects.requireNonNull(defaults); + this.cloudProvider = defaults.cloudProvider; + this.errorMessage = defaults.errorMessage; + this.id = defaults.id; + this.privateEndpointConnectionName = defaults.privateEndpointConnectionName; + this.projectId = defaults.projectId; + this.regionName = defaults.regionName; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder cloudProvider(String cloudProvider) { + if (cloudProvider == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "cloudProvider"); + } + this.cloudProvider = cloudProvider; + return this; + } + @CustomType.Setter + public Builder errorMessage(String errorMessage) { + if (errorMessage == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "errorMessage"); + } + this.errorMessage = errorMessage; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder privateEndpointConnectionName(String privateEndpointConnectionName) { + if (privateEndpointConnectionName == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "privateEndpointConnectionName"); + } + this.privateEndpointConnectionName = privateEndpointConnectionName; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder regionName(String regionName) { + if (regionName == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "regionName"); + } + this.regionName = regionName; + return this; + } + @CustomType.Setter + public Builder status(String status) { + if (status == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestPrivateEndpointsResult", "status"); + } + this.status = status; + return this; + } + public GetEncryptionAtRestPrivateEndpointsResult build() { + final var _resultValue = new GetEncryptionAtRestPrivateEndpointsResult(); + _resultValue.cloudProvider = cloudProvider; + _resultValue.errorMessage = errorMessage; + _resultValue.id = id; + _resultValue.privateEndpointConnectionName = privateEndpointConnectionName; + _resultValue.projectId = projectId; + _resultValue.regionName = regionName; + _resultValue.status = status; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestResult.java new file mode 100644 index 00000000..d367084c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetEncryptionAtRestResult.java @@ -0,0 +1,153 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestAwsKmsConfig; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestAzureKeyVaultConfig; +import com.pulumi.mongodbatlas.outputs.GetEncryptionAtRestGoogleCloudKmsConfig; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetEncryptionAtRestResult { + /** + * @return Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ + private GetEncryptionAtRestAwsKmsConfig awsKmsConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ + private GetEncryptionAtRestAzureKeyVaultConfig azureKeyVaultConfig; + /** + * @return Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ + private GetEncryptionAtRestGoogleCloudKmsConfig googleCloudKmsConfig; + /** + * @return The ID of this resource. + * + */ + private String id; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + private String projectId; + + private GetEncryptionAtRestResult() {} + /** + * @return Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + * + */ + public GetEncryptionAtRestAwsKmsConfig awsKmsConfig() { + return this.awsKmsConfig; + } + /** + * @return Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + * + */ + public GetEncryptionAtRestAzureKeyVaultConfig azureKeyVaultConfig() { + return this.azureKeyVaultConfig; + } + /** + * @return Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + * + */ + public GetEncryptionAtRestGoogleCloudKmsConfig googleCloudKmsConfig() { + return this.googleCloudKmsConfig; + } + /** + * @return The ID of this resource. + * + */ + public String id() { + return this.id; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetEncryptionAtRestResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private GetEncryptionAtRestAwsKmsConfig awsKmsConfig; + private GetEncryptionAtRestAzureKeyVaultConfig azureKeyVaultConfig; + private GetEncryptionAtRestGoogleCloudKmsConfig googleCloudKmsConfig; + private String id; + private String projectId; + public Builder() {} + public Builder(GetEncryptionAtRestResult defaults) { + Objects.requireNonNull(defaults); + this.awsKmsConfig = defaults.awsKmsConfig; + this.azureKeyVaultConfig = defaults.azureKeyVaultConfig; + this.googleCloudKmsConfig = defaults.googleCloudKmsConfig; + this.id = defaults.id; + this.projectId = defaults.projectId; + } + + @CustomType.Setter + public Builder awsKmsConfig(GetEncryptionAtRestAwsKmsConfig awsKmsConfig) { + if (awsKmsConfig == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestResult", "awsKmsConfig"); + } + this.awsKmsConfig = awsKmsConfig; + return this; + } + @CustomType.Setter + public Builder azureKeyVaultConfig(GetEncryptionAtRestAzureKeyVaultConfig azureKeyVaultConfig) { + if (azureKeyVaultConfig == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestResult", "azureKeyVaultConfig"); + } + this.azureKeyVaultConfig = azureKeyVaultConfig; + return this; + } + @CustomType.Setter + public Builder googleCloudKmsConfig(GetEncryptionAtRestGoogleCloudKmsConfig googleCloudKmsConfig) { + if (googleCloudKmsConfig == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestResult", "googleCloudKmsConfig"); + } + this.googleCloudKmsConfig = googleCloudKmsConfig; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetEncryptionAtRestResult", "projectId"); + } + this.projectId = projectId; + return this; + } + public GetEncryptionAtRestResult build() { + final var _resultValue = new GetEncryptionAtRestResult(); + _resultValue.awsKmsConfig = awsKmsConfig; + _resultValue.azureKeyVaultConfig = azureKeyVaultConfig; + _resultValue.googleCloudKmsConfig = googleCloudKmsConfig; + _resultValue.id = id; + _resultValue.projectId = projectId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesResult.java new file mode 100644 index 00000000..83f8b05d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesResult.java @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetProjectIpAddressesServices; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetProjectIpAddressesResult { + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + private String projectId; + /** + * @return List of IP addresses in a project categorized by services. + * + */ + private GetProjectIpAddressesServices services; + + private GetProjectIpAddressesResult() {} + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. + * + */ + public String projectId() { + return this.projectId; + } + /** + * @return List of IP addresses in a project categorized by services. + * + */ + public GetProjectIpAddressesServices services() { + return this.services; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetProjectIpAddressesResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private String projectId; + private GetProjectIpAddressesServices services; + public Builder() {} + public Builder(GetProjectIpAddressesResult defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.projectId = defaults.projectId; + this.services = defaults.services; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetProjectIpAddressesResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetProjectIpAddressesResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder services(GetProjectIpAddressesServices services) { + if (services == null) { + throw new MissingRequiredPropertyException("GetProjectIpAddressesResult", "services"); + } + this.services = services; + return this; + } + public GetProjectIpAddressesResult build() { + final var _resultValue = new GetProjectIpAddressesResult(); + _resultValue.id = id; + _resultValue.projectId = projectId; + _resultValue.services = services; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServices.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServices.java index 43d3faad..24630c21 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServices.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServices.java @@ -11,9 +11,17 @@ @CustomType public final class GetProjectIpAddressesServices { + /** + * @return IP addresses of clusters. + * + */ private List clusters; private GetProjectIpAddressesServices() {} + /** + * @return IP addresses of clusters. + * + */ public List clusters() { return this.clusters; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServicesCluster.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServicesCluster.java index ac858c8f..7009762f 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServicesCluster.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectIpAddressesServicesCluster.java @@ -11,17 +11,41 @@ @CustomType public final class GetProjectIpAddressesServicesCluster { + /** + * @return Human-readable label that identifies the cluster. + * + */ private String clusterName; + /** + * @return 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. + * + */ private List inbounds; + /** + * @return 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. + * + */ private List outbounds; private GetProjectIpAddressesServicesCluster() {} + /** + * @return Human-readable label that identifies the cluster. + * + */ public String clusterName() { return this.clusterName; } + /** + * @return 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. + * + */ public List inbounds() { return this.inbounds; } + /** + * @return 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. + * + */ public List outbounds() { return this.outbounds; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectResult.java index 2e491612..dcc32611 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectResult.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectResult.java @@ -31,9 +31,13 @@ public final class GetProjectResult { private String created; private String id; /** - * @return IP addresses in a project categorized by services. See IP Addresses. + * @return IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ private GetProjectIpAddresses ipAddresses; /** * @return Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. @@ -116,9 +120,13 @@ public String id() { return this.id; } /** - * @return IP addresses in a project categorized by services. See IP Addresses. + * @return IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ public GetProjectIpAddresses ipAddresses() { return this.ipAddresses; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectsResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectsResult.java index 24583c4f..3d872d3f 100644 --- a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectsResult.java +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetProjectsResult.java @@ -33,9 +33,13 @@ public final class GetProjectsResult { */ private String id; /** - * @return IP addresses in a project categorized by services. See IP Addresses. + * @return IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ private GetProjectsResultIpAddresses ipAddresses; /** * @return Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. @@ -118,9 +122,13 @@ public String id() { return this.id; } /** - * @return IP addresses in a project categorized by services. See IP Addresses. + * @return IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated + * This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. * */ + @Deprecated /* This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ public GetProjectsResultIpAddresses ipAddresses() { return this.ipAddresses; } diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorOptions.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorOptions.java new file mode 100644 index 00000000..181c85d1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorOptions.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorOptionsDlq; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorOptions { + /** + * @return 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. + * + */ + private GetStreamProcessorOptionsDlq dlq; + + private GetStreamProcessorOptions() {} + /** + * @return 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. + * + */ + public GetStreamProcessorOptionsDlq dlq() { + return this.dlq; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private GetStreamProcessorOptionsDlq dlq; + public Builder() {} + public Builder(GetStreamProcessorOptions defaults) { + Objects.requireNonNull(defaults); + this.dlq = defaults.dlq; + } + + @CustomType.Setter + public Builder dlq(GetStreamProcessorOptionsDlq dlq) { + if (dlq == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorOptions", "dlq"); + } + this.dlq = dlq; + return this; + } + public GetStreamProcessorOptions build() { + final var _resultValue = new GetStreamProcessorOptions(); + _resultValue.dlq = dlq; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorOptionsDlq.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorOptionsDlq.java new file mode 100644 index 00000000..253be140 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorOptionsDlq.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorOptionsDlq { + /** + * @return Name of the collection to use for the DLQ. + * + */ + private String coll; + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + private String connectionName; + /** + * @return Name of the database to use for the DLQ. + * + */ + private String db; + + private GetStreamProcessorOptionsDlq() {} + /** + * @return Name of the collection to use for the DLQ. + * + */ + public String coll() { + return this.coll; + } + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + public String connectionName() { + return this.connectionName; + } + /** + * @return Name of the database to use for the DLQ. + * + */ + public String db() { + return this.db; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorOptionsDlq defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String coll; + private String connectionName; + private String db; + public Builder() {} + public Builder(GetStreamProcessorOptionsDlq defaults) { + Objects.requireNonNull(defaults); + this.coll = defaults.coll; + this.connectionName = defaults.connectionName; + this.db = defaults.db; + } + + @CustomType.Setter + public Builder coll(String coll) { + if (coll == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorOptionsDlq", "coll"); + } + this.coll = coll; + return this; + } + @CustomType.Setter + public Builder connectionName(String connectionName) { + if (connectionName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorOptionsDlq", "connectionName"); + } + this.connectionName = connectionName; + return this; + } + @CustomType.Setter + public Builder db(String db) { + if (db == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorOptionsDlq", "db"); + } + this.db = db; + return this; + } + public GetStreamProcessorOptionsDlq build() { + final var _resultValue = new GetStreamProcessorOptionsDlq(); + _resultValue.coll = coll; + _resultValue.connectionName = connectionName; + _resultValue.db = db; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorResult.java new file mode 100644 index 00000000..b4178cec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorResult.java @@ -0,0 +1,180 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorOptions; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorResult { + private String id; + /** + * @return Human-readable label that identifies the stream instance. + * + */ + private String instanceName; + private GetStreamProcessorOptions options; + private String pipeline; + /** + * @return Human-readable label that identifies the stream processor. + * + */ + private String processorName; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + private String projectId; + private String state; + private String stats; + + private GetStreamProcessorResult() {} + public String id() { + return this.id; + } + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public String instanceName() { + return this.instanceName; + } + public GetStreamProcessorOptions options() { + return this.options; + } + public String pipeline() { + return this.pipeline; + } + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public String processorName() { + return this.processorName; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public String projectId() { + return this.projectId; + } + public String state() { + return this.state; + } + public String stats() { + return this.stats; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private String instanceName; + private GetStreamProcessorOptions options; + private String pipeline; + private String processorName; + private String projectId; + private String state; + private String stats; + public Builder() {} + public Builder(GetStreamProcessorResult defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.instanceName = defaults.instanceName; + this.options = defaults.options; + this.pipeline = defaults.pipeline; + this.processorName = defaults.processorName; + this.projectId = defaults.projectId; + this.state = defaults.state; + this.stats = defaults.stats; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder instanceName(String instanceName) { + if (instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "instanceName"); + } + this.instanceName = instanceName; + return this; + } + @CustomType.Setter + public Builder options(GetStreamProcessorOptions options) { + if (options == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "options"); + } + this.options = options; + return this; + } + @CustomType.Setter + public Builder pipeline(String pipeline) { + if (pipeline == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "pipeline"); + } + this.pipeline = pipeline; + return this; + } + @CustomType.Setter + public Builder processorName(String processorName) { + if (processorName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "processorName"); + } + this.processorName = processorName; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder state(String state) { + if (state == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "state"); + } + this.state = state; + return this; + } + @CustomType.Setter + public Builder stats(String stats) { + if (stats == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorResult", "stats"); + } + this.stats = stats; + return this; + } + public GetStreamProcessorResult build() { + final var _resultValue = new GetStreamProcessorResult(); + _resultValue.id = id; + _resultValue.instanceName = instanceName; + _resultValue.options = options; + _resultValue.pipeline = pipeline; + _resultValue.processorName = processorName; + _resultValue.projectId = projectId; + _resultValue.state = state; + _resultValue.stats = stats; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsInvokeResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsInvokeResult.java new file mode 100644 index 00000000..a44f9976 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsInvokeResult.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorsResult; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorsInvokeResult { + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + /** + * @return Human-readable label that identifies the stream instance. + * + */ + private String instanceName; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + private String projectId; + private List results; + + private GetStreamProcessorsInvokeResult() {} + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public String instanceName() { + return this.instanceName; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public String projectId() { + return this.projectId; + } + public List results() { + return this.results; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorsInvokeResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private String instanceName; + private String projectId; + private List results; + public Builder() {} + public Builder(GetStreamProcessorsInvokeResult defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.instanceName = defaults.instanceName; + this.projectId = defaults.projectId; + this.results = defaults.results; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsInvokeResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder instanceName(String instanceName) { + if (instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsInvokeResult", "instanceName"); + } + this.instanceName = instanceName; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsInvokeResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder results(List results) { + if (results == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsInvokeResult", "results"); + } + this.results = results; + return this; + } + public Builder results(GetStreamProcessorsResult... results) { + return results(List.of(results)); + } + public GetStreamProcessorsInvokeResult build() { + final var _resultValue = new GetStreamProcessorsInvokeResult(); + _resultValue.id = id; + _resultValue.instanceName = instanceName; + _resultValue.projectId = projectId; + _resultValue.results = results; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResult.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResult.java new file mode 100644 index 00000000..a403b324 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResult.java @@ -0,0 +1,220 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorsResultOptions; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorsResult { + /** + * @return Unique 24-hexadecimal character string that identifies the stream processor. + * + */ + private String id; + /** + * @return Human-readable label that identifies the stream instance. + * + */ + private String instanceName; + /** + * @return Optional configuration for the stream processor. + * + */ + private GetStreamProcessorsResultOptions options; + /** + * @return Stream aggregation pipeline you want to apply to your streaming data. + * + */ + private String pipeline; + /** + * @return Human-readable label that identifies the stream processor. + * + */ + private String processorName; + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + private String projectId; + /** + * @return The state of the stream processor. + * + */ + private String state; + /** + * @return The stats associated with the stream processor. + * + */ + private String stats; + + private GetStreamProcessorsResult() {} + /** + * @return Unique 24-hexadecimal character string that identifies the stream processor. + * + */ + public String id() { + return this.id; + } + /** + * @return Human-readable label that identifies the stream instance. + * + */ + public String instanceName() { + return this.instanceName; + } + /** + * @return Optional configuration for the stream processor. + * + */ + public GetStreamProcessorsResultOptions options() { + return this.options; + } + /** + * @return Stream aggregation pipeline you want to apply to your streaming data. + * + */ + public String pipeline() { + return this.pipeline; + } + /** + * @return Human-readable label that identifies the stream processor. + * + */ + public String processorName() { + return this.processorName; + } + /** + * @return Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + * + */ + public String projectId() { + return this.projectId; + } + /** + * @return The state of the stream processor. + * + */ + public String state() { + return this.state; + } + /** + * @return The stats associated with the stream processor. + * + */ + public String stats() { + return this.stats; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorsResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private String instanceName; + private GetStreamProcessorsResultOptions options; + private String pipeline; + private String processorName; + private String projectId; + private String state; + private String stats; + public Builder() {} + public Builder(GetStreamProcessorsResult defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.instanceName = defaults.instanceName; + this.options = defaults.options; + this.pipeline = defaults.pipeline; + this.processorName = defaults.processorName; + this.projectId = defaults.projectId; + this.state = defaults.state; + this.stats = defaults.stats; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder instanceName(String instanceName) { + if (instanceName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "instanceName"); + } + this.instanceName = instanceName; + return this; + } + @CustomType.Setter + public Builder options(GetStreamProcessorsResultOptions options) { + if (options == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "options"); + } + this.options = options; + return this; + } + @CustomType.Setter + public Builder pipeline(String pipeline) { + if (pipeline == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "pipeline"); + } + this.pipeline = pipeline; + return this; + } + @CustomType.Setter + public Builder processorName(String processorName) { + if (processorName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "processorName"); + } + this.processorName = processorName; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder state(String state) { + if (state == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "state"); + } + this.state = state; + return this; + } + @CustomType.Setter + public Builder stats(String stats) { + if (stats == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResult", "stats"); + } + this.stats = stats; + return this; + } + public GetStreamProcessorsResult build() { + final var _resultValue = new GetStreamProcessorsResult(); + _resultValue.id = id; + _resultValue.instanceName = instanceName; + _resultValue.options = options; + _resultValue.pipeline = pipeline; + _resultValue.processorName = processorName; + _resultValue.projectId = projectId; + _resultValue.state = state; + _resultValue.stats = stats; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResultOptions.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResultOptions.java new file mode 100644 index 00000000..cfea9d95 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResultOptions.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.GetStreamProcessorsResultOptionsDlq; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorsResultOptions { + /** + * @return 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. + * + */ + private GetStreamProcessorsResultOptionsDlq dlq; + + private GetStreamProcessorsResultOptions() {} + /** + * @return 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. + * + */ + public GetStreamProcessorsResultOptionsDlq dlq() { + return this.dlq; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorsResultOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private GetStreamProcessorsResultOptionsDlq dlq; + public Builder() {} + public Builder(GetStreamProcessorsResultOptions defaults) { + Objects.requireNonNull(defaults); + this.dlq = defaults.dlq; + } + + @CustomType.Setter + public Builder dlq(GetStreamProcessorsResultOptionsDlq dlq) { + if (dlq == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResultOptions", "dlq"); + } + this.dlq = dlq; + return this; + } + public GetStreamProcessorsResultOptions build() { + final var _resultValue = new GetStreamProcessorsResultOptions(); + _resultValue.dlq = dlq; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResultOptionsDlq.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResultOptionsDlq.java new file mode 100644 index 00000000..59bb38d6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/GetStreamProcessorsResultOptionsDlq.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetStreamProcessorsResultOptionsDlq { + /** + * @return Name of the collection to use for the DLQ. + * + */ + private String coll; + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + private String connectionName; + /** + * @return Name of the database to use for the DLQ. + * + */ + private String db; + + private GetStreamProcessorsResultOptionsDlq() {} + /** + * @return Name of the collection to use for the DLQ. + * + */ + public String coll() { + return this.coll; + } + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + public String connectionName() { + return this.connectionName; + } + /** + * @return Name of the database to use for the DLQ. + * + */ + public String db() { + return this.db; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetStreamProcessorsResultOptionsDlq defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String coll; + private String connectionName; + private String db; + public Builder() {} + public Builder(GetStreamProcessorsResultOptionsDlq defaults) { + Objects.requireNonNull(defaults); + this.coll = defaults.coll; + this.connectionName = defaults.connectionName; + this.db = defaults.db; + } + + @CustomType.Setter + public Builder coll(String coll) { + if (coll == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResultOptionsDlq", "coll"); + } + this.coll = coll; + return this; + } + @CustomType.Setter + public Builder connectionName(String connectionName) { + if (connectionName == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResultOptionsDlq", "connectionName"); + } + this.connectionName = connectionName; + return this; + } + @CustomType.Setter + public Builder db(String db) { + if (db == null) { + throw new MissingRequiredPropertyException("GetStreamProcessorsResultOptionsDlq", "db"); + } + this.db = db; + return this; + } + public GetStreamProcessorsResultOptionsDlq build() { + final var _resultValue = new GetStreamProcessorsResultOptionsDlq(); + _resultValue.coll = coll; + _resultValue.connectionName = connectionName; + _resultValue.db = db; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/StreamProcessorOptions.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/StreamProcessorOptions.java new file mode 100644 index 00000000..25afd31c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/StreamProcessorOptions.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.mongodbatlas.outputs.StreamProcessorOptionsDlq; +import java.util.Objects; + +@CustomType +public final class StreamProcessorOptions { + /** + * @return 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. + * + */ + private StreamProcessorOptionsDlq dlq; + + private StreamProcessorOptions() {} + /** + * @return 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. + * + */ + public StreamProcessorOptionsDlq dlq() { + return this.dlq; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private StreamProcessorOptionsDlq dlq; + public Builder() {} + public Builder(StreamProcessorOptions defaults) { + Objects.requireNonNull(defaults); + this.dlq = defaults.dlq; + } + + @CustomType.Setter + public Builder dlq(StreamProcessorOptionsDlq dlq) { + if (dlq == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptions", "dlq"); + } + this.dlq = dlq; + return this; + } + public StreamProcessorOptions build() { + final var _resultValue = new StreamProcessorOptions(); + _resultValue.dlq = dlq; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/StreamProcessorOptionsDlq.java b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/StreamProcessorOptionsDlq.java new file mode 100644 index 00000000..2762e845 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/mongodbatlas/outputs/StreamProcessorOptionsDlq.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.mongodbatlas.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class StreamProcessorOptionsDlq { + /** + * @return Name of the collection to use for the DLQ. + * + */ + private String coll; + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + private String connectionName; + /** + * @return Name of the database to use for the DLQ. + * + */ + private String db; + + private StreamProcessorOptionsDlq() {} + /** + * @return Name of the collection to use for the DLQ. + * + */ + public String coll() { + return this.coll; + } + /** + * @return Name of the connection to write DLQ messages to. Must be an Atlas connection. + * + */ + public String connectionName() { + return this.connectionName; + } + /** + * @return Name of the database to use for the DLQ. + * + */ + public String db() { + return this.db; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamProcessorOptionsDlq defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String coll; + private String connectionName; + private String db; + public Builder() {} + public Builder(StreamProcessorOptionsDlq defaults) { + Objects.requireNonNull(defaults); + this.coll = defaults.coll; + this.connectionName = defaults.connectionName; + this.db = defaults.db; + } + + @CustomType.Setter + public Builder coll(String coll) { + if (coll == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsDlq", "coll"); + } + this.coll = coll; + return this; + } + @CustomType.Setter + public Builder connectionName(String connectionName) { + if (connectionName == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsDlq", "connectionName"); + } + this.connectionName = connectionName; + return this; + } + @CustomType.Setter + public Builder db(String db) { + if (db == null) { + throw new MissingRequiredPropertyException("StreamProcessorOptionsDlq", "db"); + } + this.db = db; + return this; + } + public StreamProcessorOptionsDlq build() { + final var _resultValue = new StreamProcessorOptionsDlq(); + _resultValue.coll = coll; + _resultValue.connectionName = connectionName; + _resultValue.db = db; + return _resultValue; + } + } +} diff --git a/sdk/nodejs/advancedCluster.ts b/sdk/nodejs/advancedCluster.ts index 255a8164..a28debf7 100644 --- a/sdk/nodejs/advancedCluster.ts +++ b/sdk/nodejs/advancedCluster.ts @@ -429,7 +429,7 @@ export class AdvancedCluster extends pulumi.CustomResource { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ public readonly labels!: pulumi.Output; /** @@ -453,6 +453,10 @@ export class AdvancedCluster extends pulumi.CustomResource { * Unique ID for the project to create the database user. */ public readonly projectId!: pulumi.Output; + /** + * 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) + */ + public readonly replicaSetScalingStrategy!: pulumi.Output; /** * 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below */ @@ -522,6 +526,7 @@ export class AdvancedCluster extends pulumi.CustomResource { resourceInputs["paused"] = state ? state.paused : undefined; resourceInputs["pitEnabled"] = state ? state.pitEnabled : undefined; resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["replicaSetScalingStrategy"] = state ? state.replicaSetScalingStrategy : undefined; resourceInputs["replicationSpecs"] = state ? state.replicationSpecs : undefined; resourceInputs["retainBackupsEnabled"] = state ? state.retainBackupsEnabled : undefined; resourceInputs["rootCertType"] = state ? state.rootCertType : undefined; @@ -554,6 +559,7 @@ export class AdvancedCluster extends pulumi.CustomResource { resourceInputs["paused"] = args ? args.paused : undefined; resourceInputs["pitEnabled"] = args ? args.pitEnabled : undefined; resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["replicaSetScalingStrategy"] = args ? args.replicaSetScalingStrategy : undefined; resourceInputs["replicationSpecs"] = args ? args.replicationSpecs : undefined; resourceInputs["retainBackupsEnabled"] = args ? args.retainBackupsEnabled : undefined; resourceInputs["rootCertType"] = args ? args.rootCertType : undefined; @@ -630,7 +636,7 @@ export interface AdvancedClusterState { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ labels?: pulumi.Input[]>; /** @@ -654,6 +660,10 @@ export interface AdvancedClusterState { * Unique ID for the project to create the database user. */ projectId?: pulumi.Input; + /** + * 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) + */ + replicaSetScalingStrategy?: pulumi.Input; /** * 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below */ @@ -743,7 +753,7 @@ export interface AdvancedClusterArgs { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ labels?: pulumi.Input[]>; /** @@ -763,6 +773,10 @@ export interface AdvancedClusterArgs { * Unique ID for the project to create the database user. */ projectId: pulumi.Input; + /** + * 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) + */ + replicaSetScalingStrategy?: pulumi.Input; /** * 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. If for each replicationSpec `numShards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below */ diff --git a/sdk/nodejs/cluster.ts b/sdk/nodejs/cluster.ts index e4eaf829..18f18be7 100644 --- a/sdk/nodejs/cluster.ts +++ b/sdk/nodejs/cluster.ts @@ -328,7 +328,7 @@ export class Cluster extends pulumi.CustomResource { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ public readonly labels!: pulumi.Output; /** @@ -666,7 +666,7 @@ export interface ClusterState { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ labels?: pulumi.Input[]>; /** @@ -873,7 +873,7 @@ export interface ClusterArgs { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ labels?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/encryptionAtRest.ts b/sdk/nodejs/encryptionAtRest.ts index 0c9cb223..8ceeb550 100644 --- a/sdk/nodejs/encryptionAtRest.ts +++ b/sdk/nodejs/encryptionAtRest.ts @@ -6,16 +6,6 @@ import * as inputs from "./types/input"; import * as outputs from "./types/output"; import * as utilities from "./utilities"; -/** - * ## Import - * - * Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g. - * - * ```sh - * $ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934 - * ``` - * For more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management) - */ export class EncryptionAtRest extends pulumi.CustomResource { /** * Get an existing EncryptionAtRest resource's state with the given name, ID, and optional extra @@ -44,11 +34,20 @@ export class EncryptionAtRest extends pulumi.CustomResource { return obj['__pulumiType'] === EncryptionAtRest.__pulumiType; } + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + */ public readonly awsKmsConfig!: pulumi.Output; + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + */ public readonly azureKeyVaultConfig!: pulumi.Output; + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + */ public readonly googleCloudKmsConfig!: pulumi.Output; /** - * The unique identifier for the project. + * Unique 24-hexadecimal digit string that identifies your project. */ public readonly projectId!: pulumi.Output; @@ -88,11 +87,20 @@ export class EncryptionAtRest extends pulumi.CustomResource { * Input properties used for looking up and filtering EncryptionAtRest resources. */ export interface EncryptionAtRestState { + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + */ awsKmsConfig?: pulumi.Input; + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + */ azureKeyVaultConfig?: pulumi.Input; + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + */ googleCloudKmsConfig?: pulumi.Input; /** - * The unique identifier for the project. + * Unique 24-hexadecimal digit string that identifies your project. */ projectId?: pulumi.Input; } @@ -101,11 +109,20 @@ export interface EncryptionAtRestState { * The set of arguments for constructing a EncryptionAtRest resource. */ export interface EncryptionAtRestArgs { + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + */ awsKmsConfig?: pulumi.Input; + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + */ azureKeyVaultConfig?: pulumi.Input; + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + */ googleCloudKmsConfig?: pulumi.Input; /** - * The unique identifier for the project. + * Unique 24-hexadecimal digit string that identifies your project. */ projectId: pulumi.Input; } diff --git a/sdk/nodejs/encryptionAtRestPrivateEndpoint.ts b/sdk/nodejs/encryptionAtRestPrivateEndpoint.ts new file mode 100644 index 00000000..71688edf --- /dev/null +++ b/sdk/nodejs/encryptionAtRestPrivateEndpoint.ts @@ -0,0 +1,213 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * ## # Resource: mongodbatlas.EncryptionAtRestPrivateEndpoint + * + * `mongodbatlas.EncryptionAtRestPrivateEndpoint` 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. + * + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). + * + * > **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `mongodbatlas.EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled. + * + * > **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. + * + * ## Example Usage + * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * + * ### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link + * + * Make sure to reference the complete example section for detailed steps and considerations. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azapi from "@pulumi/azapi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const ear = new mongodbatlas.EncryptionAtRest("ear", { + * projectId: atlasProjectId, + * azureKeyVaultConfig: { + * requirePrivateNetworking: true, + * enabled: true, + * azureEnvironment: "AZURE", + * tenantId: azureTenantId, + * subscriptionId: azureSubscriptionId, + * clientId: azureClientId, + * secret: azureClientSecret, + * resourceGroupName: azureResourceGroupName, + * keyVaultName: azureKeyVaultName, + * keyIdentifier: azureKeyIdentifier, + * }, + * }); + * // Creates private endpoint + * const endpoint = new mongodbatlas.EncryptionAtRestPrivateEndpoint("endpoint", { + * projectId: ear.projectId, + * cloudProvider: "AZURE", + * regionName: azureRegionName, + * }); + * const keyVaultResourceId = `/subscriptions/${azureSubscriptionId}/resourceGroups/${azureResourceGroupName}/providers/Microsoft.KeyVault/vaults/${azureKeyVaultName}`; + * // Approves private endpoint connection from Azure Key Vault + * const approval = new azapi.index.UpdateResource("approval", { + * type: "Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01", + * name: endpoint.privateEndpointConnectionName, + * parentId: keyVaultResourceId, + * body: JSON.stringify({ + * properties: { + * privateLinkServiceConnectionState: { + * description: "Approved via Terraform", + * status: "Approved", + * }, + * }, + * }), + * }); + * ``` + */ +export class EncryptionAtRestPrivateEndpoint extends pulumi.CustomResource { + /** + * Get an existing EncryptionAtRestPrivateEndpoint resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: EncryptionAtRestPrivateEndpointState, opts?: pulumi.CustomResourceOptions): EncryptionAtRestPrivateEndpoint { + return new EncryptionAtRestPrivateEndpoint(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint'; + + /** + * Returns true if the given object is an instance of EncryptionAtRestPrivateEndpoint. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is EncryptionAtRestPrivateEndpoint { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === EncryptionAtRestPrivateEndpoint.__pulumiType; + } + + /** + * Label that identifies the cloud provider for the Encryption At Rest private endpoint. + */ + public readonly cloudProvider!: pulumi.Output; + /** + * Error message for failures associated with the Encryption At Rest private endpoint. + */ + public /*out*/ readonly errorMessage!: pulumi.Output; + /** + * Connection name of the Azure Private Endpoint. + */ + public /*out*/ readonly privateEndpointConnectionName!: pulumi.Output; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + public readonly projectId!: pulumi.Output; + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + */ + public readonly regionName!: pulumi.Output; + /** + * State of the Encryption At Rest private endpoint. + */ + public /*out*/ readonly status!: pulumi.Output; + + /** + * Create a EncryptionAtRestPrivateEndpoint resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: EncryptionAtRestPrivateEndpointArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: EncryptionAtRestPrivateEndpointArgs | EncryptionAtRestPrivateEndpointState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as EncryptionAtRestPrivateEndpointState | undefined; + resourceInputs["cloudProvider"] = state ? state.cloudProvider : undefined; + resourceInputs["errorMessage"] = state ? state.errorMessage : undefined; + resourceInputs["privateEndpointConnectionName"] = state ? state.privateEndpointConnectionName : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["regionName"] = state ? state.regionName : undefined; + resourceInputs["status"] = state ? state.status : undefined; + } else { + const args = argsOrState as EncryptionAtRestPrivateEndpointArgs | undefined; + if ((!args || args.cloudProvider === undefined) && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if ((!args || args.projectId === undefined) && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + if ((!args || args.regionName === undefined) && !opts.urn) { + throw new Error("Missing required property 'regionName'"); + } + resourceInputs["cloudProvider"] = args ? args.cloudProvider : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["regionName"] = args ? args.regionName : undefined; + resourceInputs["errorMessage"] = undefined /*out*/; + resourceInputs["privateEndpointConnectionName"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(EncryptionAtRestPrivateEndpoint.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering EncryptionAtRestPrivateEndpoint resources. + */ +export interface EncryptionAtRestPrivateEndpointState { + /** + * Label that identifies the cloud provider for the Encryption At Rest private endpoint. + */ + cloudProvider?: pulumi.Input; + /** + * Error message for failures associated with the Encryption At Rest private endpoint. + */ + errorMessage?: pulumi.Input; + /** + * Connection name of the Azure Private Endpoint. + */ + privateEndpointConnectionName?: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId?: pulumi.Input; + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + */ + regionName?: pulumi.Input; + /** + * State of the Encryption At Rest private endpoint. + */ + status?: pulumi.Input; +} + +/** + * The set of arguments for constructing a EncryptionAtRestPrivateEndpoint resource. + */ +export interface EncryptionAtRestPrivateEndpointArgs { + /** + * Label that identifies the cloud provider for the Encryption At Rest private endpoint. + */ + cloudProvider: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: pulumi.Input; + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + */ + regionName: pulumi.Input; +} diff --git a/sdk/nodejs/getAdvancedCluster.ts b/sdk/nodejs/getAdvancedCluster.ts index 8f3125eb..265c2b8f 100644 --- a/sdk/nodejs/getAdvancedCluster.ts +++ b/sdk/nodejs/getAdvancedCluster.ts @@ -166,7 +166,7 @@ export interface GetAdvancedClusterResult { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ readonly labels: outputs.GetAdvancedClusterLabel[]; /** @@ -187,6 +187,10 @@ export interface GetAdvancedClusterResult { */ readonly pitEnabled: boolean; readonly projectId: string; + /** + * (Optional) Replica set scaling mode for your cluster. + */ + readonly replicaSetScalingStrategy: string; /** * List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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. */ diff --git a/sdk/nodejs/getCluster.ts b/sdk/nodejs/getCluster.ts index b1e3e4c2..a067e344 100644 --- a/sdk/nodejs/getCluster.ts +++ b/sdk/nodejs/getCluster.ts @@ -130,7 +130,7 @@ export interface GetClusterResult { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ readonly labels: outputs.GetClusterLabel[]; /** diff --git a/sdk/nodejs/getEncryptionAtRest.ts b/sdk/nodejs/getEncryptionAtRest.ts new file mode 100644 index 00000000..e84511e3 --- /dev/null +++ b/sdk/nodejs/getEncryptionAtRest.ts @@ -0,0 +1,292 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## # Data Source: mongodbatlas.EncryptionAtRest + * + * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + * + * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + * + * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + * + * > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * ### S + * + * ### Configuring encryption at rest using customer key management in AWS + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const setupOnly = new mongodbatlas.CloudProviderAccessSetup("setup_only", { + * projectId: atlasProjectId, + * providerName: "AWS", + * }); + * const authRole = new mongodbatlas.CloudProviderAccessAuthorization("auth_role", { + * projectId: atlasProjectId, + * roleId: setupOnly.roleId, + * aws: { + * iamAssumedRoleArn: testRole.arn, + * }, + * }); + * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", { + * projectId: atlasProjectId, + * awsKmsConfig: { + * enabled: true, + * customerMasterKeyId: kmsKey.id, + * region: atlasRegion, + * roleId: authRole.roleId, + * }, + * }); + * const cluster = new mongodbatlas.AdvancedCluster("cluster", { + * projectId: testEncryptionAtRest.projectId, + * name: "MyCluster", + * clusterType: "REPLICASET", + * backupEnabled: true, + * encryptionAtRestProvider: "AWS", + * replicationSpecs: [{ + * regionConfigs: [{ + * priority: 7, + * providerName: "AWS", + * regionName: "US_EAST_1", + * electableSpecs: { + * instanceSize: "M10", + * nodeCount: 3, + * }, + * }], + * }], + * }); + * const test = mongodbatlas.getEncryptionAtRestOutput({ + * projectId: testEncryptionAtRest.projectId, + * }); + * export const isAwsKmsEncryptionAtRestValid = test.apply(test => test.awsKmsConfig?.valid); + * ``` + * + * ### Configuring encryption at rest using customer key management in Azure + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", { + * projectId: atlasProjectId, + * azureKeyVaultConfig: { + * enabled: true, + * azureEnvironment: "AZURE", + * tenantId: azureTenantId, + * subscriptionId: azureSubscriptionId, + * clientId: azureClientId, + * secret: azureClientSecret, + * resourceGroupName: azureResourceGroupName, + * keyVaultName: azureKeyVaultName, + * keyIdentifier: azureKeyIdentifier, + * }, + * }); + * const test = mongodbatlas.getEncryptionAtRestOutput({ + * projectId: testEncryptionAtRest.projectId, + * }); + * export const isAzureEncryptionAtRestValid = test.apply(test => test.azureKeyVaultConfig?.valid); + * ``` + * + * > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. + * + * ### Configuring encryption at rest using customer key management in GCP + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", { + * projectId: atlasProjectId, + * googleCloudKmsConfig: { + * enabled: true, + * 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\"}", + * keyVersionResourceId: "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1", + * }, + * }); + * const test = mongodbatlas.getEncryptionAtRestOutput({ + * projectId: testEncryptionAtRest.projectId, + * }); + * export const isGcpEncryptionAtRestValid = test.apply(test => test.googleCloudKmsConfig?.valid); + * ``` + */ +export function getEncryptionAtRest(args: GetEncryptionAtRestArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", { + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getEncryptionAtRest. + */ +export interface GetEncryptionAtRestArgs { + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: string; +} + +/** + * A collection of values returned by getEncryptionAtRest. + */ +export interface GetEncryptionAtRestResult { + /** + * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + */ + readonly awsKmsConfig: outputs.GetEncryptionAtRestAwsKmsConfig; + /** + * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + */ + readonly azureKeyVaultConfig: outputs.GetEncryptionAtRestAzureKeyVaultConfig; + /** + * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + */ + readonly googleCloudKmsConfig: outputs.GetEncryptionAtRestGoogleCloudKmsConfig; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + readonly projectId: string; +} +/** + * ## # Data Source: mongodbatlas.EncryptionAtRest + * + * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + * + * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + * + * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + * + * > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + * + * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + * + * ## Example Usage + * + * ### S + * + * ### Configuring encryption at rest using customer key management in AWS + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const setupOnly = new mongodbatlas.CloudProviderAccessSetup("setup_only", { + * projectId: atlasProjectId, + * providerName: "AWS", + * }); + * const authRole = new mongodbatlas.CloudProviderAccessAuthorization("auth_role", { + * projectId: atlasProjectId, + * roleId: setupOnly.roleId, + * aws: { + * iamAssumedRoleArn: testRole.arn, + * }, + * }); + * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", { + * projectId: atlasProjectId, + * awsKmsConfig: { + * enabled: true, + * customerMasterKeyId: kmsKey.id, + * region: atlasRegion, + * roleId: authRole.roleId, + * }, + * }); + * const cluster = new mongodbatlas.AdvancedCluster("cluster", { + * projectId: testEncryptionAtRest.projectId, + * name: "MyCluster", + * clusterType: "REPLICASET", + * backupEnabled: true, + * encryptionAtRestProvider: "AWS", + * replicationSpecs: [{ + * regionConfigs: [{ + * priority: 7, + * providerName: "AWS", + * regionName: "US_EAST_1", + * electableSpecs: { + * instanceSize: "M10", + * nodeCount: 3, + * }, + * }], + * }], + * }); + * const test = mongodbatlas.getEncryptionAtRestOutput({ + * projectId: testEncryptionAtRest.projectId, + * }); + * export const isAwsKmsEncryptionAtRestValid = test.apply(test => test.awsKmsConfig?.valid); + * ``` + * + * ### Configuring encryption at rest using customer key management in Azure + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", { + * projectId: atlasProjectId, + * azureKeyVaultConfig: { + * enabled: true, + * azureEnvironment: "AZURE", + * tenantId: azureTenantId, + * subscriptionId: azureSubscriptionId, + * clientId: azureClientId, + * secret: azureClientSecret, + * resourceGroupName: azureResourceGroupName, + * keyVaultName: azureKeyVaultName, + * keyIdentifier: azureKeyIdentifier, + * }, + * }); + * const test = mongodbatlas.getEncryptionAtRestOutput({ + * projectId: testEncryptionAtRest.projectId, + * }); + * export const isAzureEncryptionAtRestValid = test.apply(test => test.azureKeyVaultConfig?.valid); + * ``` + * + * > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `mongodbatlas.EncryptionAtRestPrivateEndpoint` resource for details. + * + * ### Configuring encryption at rest using customer key management in GCP + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", { + * projectId: atlasProjectId, + * googleCloudKmsConfig: { + * enabled: true, + * 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\"}", + * keyVersionResourceId: "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1", + * }, + * }); + * const test = mongodbatlas.getEncryptionAtRestOutput({ + * projectId: testEncryptionAtRest.projectId, + * }); + * export const isGcpEncryptionAtRestValid = test.apply(test => test.googleCloudKmsConfig?.valid); + * ``` + */ +export function getEncryptionAtRestOutput(args: GetEncryptionAtRestOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getEncryptionAtRest(a, opts)) +} + +/** + * A collection of arguments for invoking getEncryptionAtRest. + */ +export interface GetEncryptionAtRestOutputArgs { + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/getEncryptionAtRestPrivateEndpoint.ts b/sdk/nodejs/getEncryptionAtRestPrivateEndpoint.ts new file mode 100644 index 00000000..a69f0e14 --- /dev/null +++ b/sdk/nodejs/getEncryptionAtRestPrivateEndpoint.ts @@ -0,0 +1,140 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint + * + * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. + * + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). + * + * ## Example Usage + * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const single = mongodbatlas.getEncryptionAtRestPrivateEndpoint({ + * projectId: atlasProjectId, + * cloudProvider: "AZURE", + * id: endpoint.id, + * }); + * export const endpointConnectionName = single.then(single => single.privateEndpointConnectionName); + * ``` + */ +export function getEncryptionAtRestPrivateEndpoint(args: GetEncryptionAtRestPrivateEndpointArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint", { + "cloudProvider": args.cloudProvider, + "id": args.id, + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint. + */ +export interface GetEncryptionAtRestPrivateEndpointArgs { + /** + * Label that identifies the cloud provider of the private endpoint. + */ + cloudProvider: string; + /** + * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + */ + id: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: string; +} + +/** + * A collection of values returned by getEncryptionAtRestPrivateEndpoint. + */ +export interface GetEncryptionAtRestPrivateEndpointResult { + /** + * Label that identifies the cloud provider of the private endpoint. + */ + readonly cloudProvider: string; + /** + * Error message for failures associated with the Encryption At Rest private endpoint. + */ + readonly errorMessage: string; + /** + * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + */ + readonly id: string; + /** + * Connection name of the Azure Private Endpoint. + */ + readonly privateEndpointConnectionName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + readonly projectId: string; + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + */ + readonly regionName: string; + /** + * State of the Encryption At Rest private endpoint. + */ + readonly status: string; +} +/** + * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint + * + * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. + * + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). + * + * ## Example Usage + * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const single = mongodbatlas.getEncryptionAtRestPrivateEndpoint({ + * projectId: atlasProjectId, + * cloudProvider: "AZURE", + * id: endpoint.id, + * }); + * export const endpointConnectionName = single.then(single => single.privateEndpointConnectionName); + * ``` + */ +export function getEncryptionAtRestPrivateEndpointOutput(args: GetEncryptionAtRestPrivateEndpointOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getEncryptionAtRestPrivateEndpoint(a, opts)) +} + +/** + * A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint. + */ +export interface GetEncryptionAtRestPrivateEndpointOutputArgs { + /** + * Label that identifies the cloud provider of the private endpoint. + */ + cloudProvider: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + */ + id: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/getEncryptionAtRestPrivateEndpoints.ts b/sdk/nodejs/getEncryptionAtRestPrivateEndpoints.ts new file mode 100644 index 00000000..2db669e1 --- /dev/null +++ b/sdk/nodejs/getEncryptionAtRestPrivateEndpoints.ts @@ -0,0 +1,119 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints + * + * `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. + * + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). + * + * ## Example Usage + * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const plural = mongodbatlas.getEncryptionAtRestPrivateEndpoints({ + * projectId: atlasProjectId, + * cloudProvider: "AZURE", + * }); + * export const numberOfEndpoints = plural.then(plural => plural.results).length; + * ``` + */ +export function getEncryptionAtRestPrivateEndpoints(args: GetEncryptionAtRestPrivateEndpointsArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints", { + "cloudProvider": args.cloudProvider, + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getEncryptionAtRestPrivateEndpoints. + */ +export interface GetEncryptionAtRestPrivateEndpointsArgs { + /** + * Human-readable label that identifies the cloud provider for the private endpoints to return. + */ + cloudProvider: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: string; +} + +/** + * A collection of values returned by getEncryptionAtRestPrivateEndpoints. + */ +export interface GetEncryptionAtRestPrivateEndpointsResult { + /** + * Human-readable label that identifies the cloud provider for the private endpoints to return. + */ + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + readonly projectId: string; + /** + * List of returned documents that MongoDB Cloud providers when completing this request. + */ + readonly results: outputs.GetEncryptionAtRestPrivateEndpointsResult[]; +} +/** + * ## # Data Source: mongodbatlas.getEncryptionAtRestPrivateEndpoints + * + * `mongodbatlas.getEncryptionAtRestPrivateEndpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. + * + * > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + * To 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). + * + * ## Example Usage + * + * ### S + * + * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const plural = mongodbatlas.getEncryptionAtRestPrivateEndpoints({ + * projectId: atlasProjectId, + * cloudProvider: "AZURE", + * }); + * export const numberOfEndpoints = plural.then(plural => plural.results).length; + * ``` + */ +export function getEncryptionAtRestPrivateEndpointsOutput(args: GetEncryptionAtRestPrivateEndpointsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getEncryptionAtRestPrivateEndpoints(a, opts)) +} + +/** + * A collection of arguments for invoking getEncryptionAtRestPrivateEndpoints. + */ +export interface GetEncryptionAtRestPrivateEndpointsOutputArgs { + /** + * Human-readable label that identifies the cloud provider for the private endpoints to return. + */ + cloudProvider: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/getProject.ts b/sdk/nodejs/getProject.ts index 69dbdd16..f464bc5f 100644 --- a/sdk/nodejs/getProject.ts +++ b/sdk/nodejs/getProject.ts @@ -118,7 +118,9 @@ export interface GetProjectResult { readonly created: string; readonly id: string; /** - * IP addresses in a project categorized by services. See IP Addresses. + * IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ readonly ipAddresses: outputs.GetProjectIpAddresses; /** diff --git a/sdk/nodejs/getProjectIpAddresses.ts b/sdk/nodejs/getProjectIpAddresses.ts new file mode 100644 index 00000000..05631b5e --- /dev/null +++ b/sdk/nodejs/getProjectIpAddresses.ts @@ -0,0 +1,92 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## # Data Source: mongodbatlas.getProjectIpAddresses + * + * `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + * + * ## Example Usage + * + * ### S + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const test = mongodbatlas.getProjectIpAddresses({ + * projectId: projectId, + * }); + * export const projectServices = test.then(test => test.services); + * ``` + */ +export function getProjectIpAddresses(args: GetProjectIpAddressesArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses", { + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getProjectIpAddresses. + */ +export interface GetProjectIpAddressesArgs { + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: string; +} + +/** + * A collection of values returned by getProjectIpAddresses. + */ +export interface GetProjectIpAddressesResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + readonly projectId: string; + /** + * List of IP addresses in a project categorized by services. + */ + readonly services: outputs.GetProjectIpAddressesServices; +} +/** + * ## # Data Source: mongodbatlas.getProjectIpAddresses + * + * `mongodbatlas.getProjectIpAddresses` returns the IP addresses in a project categorized by services. + * + * ## Example Usage + * + * ### S + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as mongodbatlas from "@pulumi/mongodbatlas"; + * + * const test = mongodbatlas.getProjectIpAddresses({ + * projectId: projectId, + * }); + * export const projectServices = test.then(test => test.services); + * ``` + */ +export function getProjectIpAddressesOutput(args: GetProjectIpAddressesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getProjectIpAddresses(a, opts)) +} + +/** + * A collection of arguments for invoking getProjectIpAddresses. + */ +export interface GetProjectIpAddressesOutputArgs { + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/getStreamProcessor.ts b/sdk/nodejs/getStreamProcessor.ts new file mode 100644 index 00000000..394b5153 --- /dev/null +++ b/sdk/nodejs/getStreamProcessor.ts @@ -0,0 +1,93 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## # Data Source: mongodbatlas.StreamProcessor + * + * `mongodbatlas.StreamProcessor` describes a stream processor. + * + * ## Example Usage + */ +export function getStreamProcessor(args: GetStreamProcessorArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("mongodbatlas:index/getStreamProcessor:getStreamProcessor", { + "instanceName": args.instanceName, + "processorName": args.processorName, + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getStreamProcessor. + */ +export interface GetStreamProcessorArgs { + /** + * Human-readable label that identifies the stream instance. + */ + instanceName: string; + /** + * Human-readable label that identifies the stream processor. + */ + processorName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId: string; +} + +/** + * A collection of values returned by getStreamProcessor. + */ +export interface GetStreamProcessorResult { + readonly id: string; + /** + * Human-readable label that identifies the stream instance. + */ + readonly instanceName: string; + readonly options: outputs.GetStreamProcessorOptions; + readonly pipeline: string; + /** + * Human-readable label that identifies the stream processor. + */ + readonly processorName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + readonly projectId: string; + readonly state: string; + readonly stats: string; +} +/** + * ## # Data Source: mongodbatlas.StreamProcessor + * + * `mongodbatlas.StreamProcessor` describes a stream processor. + * + * ## Example Usage + */ +export function getStreamProcessorOutput(args: GetStreamProcessorOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getStreamProcessor(a, opts)) +} + +/** + * A collection of arguments for invoking getStreamProcessor. + */ +export interface GetStreamProcessorOutputArgs { + /** + * Human-readable label that identifies the stream instance. + */ + instanceName: pulumi.Input; + /** + * Human-readable label that identifies the stream processor. + */ + processorName: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/getStreamProcessors.ts b/sdk/nodejs/getStreamProcessors.ts new file mode 100644 index 00000000..2aa0b7ff --- /dev/null +++ b/sdk/nodejs/getStreamProcessors.ts @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## # Data Source: mongodbatlas.getStreamProcessors + * + * `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance. + * + * ## Example Usage + */ +export function getStreamProcessors(args: GetStreamProcessorsArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("mongodbatlas:index/getStreamProcessors:getStreamProcessors", { + "instanceName": args.instanceName, + "projectId": args.projectId, + }, opts); +} + +/** + * A collection of arguments for invoking getStreamProcessors. + */ +export interface GetStreamProcessorsArgs { + /** + * Human-readable label that identifies the stream instance. + */ + instanceName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId: string; +} + +/** + * A collection of values returned by getStreamProcessors. + */ +export interface GetStreamProcessorsResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * Human-readable label that identifies the stream instance. + */ + readonly instanceName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + readonly projectId: string; + readonly results: outputs.GetStreamProcessorsResult[]; +} +/** + * ## # Data Source: mongodbatlas.getStreamProcessors + * + * `mongodbatlas.getStreamProcessors` returns all stream processors in a stream instance. + * + * ## Example Usage + */ +export function getStreamProcessorsOutput(args: GetStreamProcessorsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getStreamProcessors(a, opts)) +} + +/** + * A collection of arguments for invoking getStreamProcessors. + */ +export interface GetStreamProcessorsOutputArgs { + /** + * Human-readable label that identifies the stream instance. + */ + instanceName: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index ddf18700..36aea82e 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -105,6 +105,11 @@ export type EncryptionAtRest = import("./encryptionAtRest").EncryptionAtRest; export const EncryptionAtRest: typeof import("./encryptionAtRest").EncryptionAtRest = null as any; utilities.lazyLoad(exports, ["EncryptionAtRest"], () => require("./encryptionAtRest")); +export { EncryptionAtRestPrivateEndpointArgs, EncryptionAtRestPrivateEndpointState } from "./encryptionAtRestPrivateEndpoint"; +export type EncryptionAtRestPrivateEndpoint = import("./encryptionAtRestPrivateEndpoint").EncryptionAtRestPrivateEndpoint; +export const EncryptionAtRestPrivateEndpoint: typeof import("./encryptionAtRestPrivateEndpoint").EncryptionAtRestPrivateEndpoint = null as any; +utilities.lazyLoad(exports, ["EncryptionAtRestPrivateEndpoint"], () => require("./encryptionAtRestPrivateEndpoint")); + export { EventTriggerArgs, EventTriggerState } from "./eventTrigger"; export type EventTrigger = import("./eventTrigger").EventTrigger; export const EventTrigger: typeof import("./eventTrigger").EventTrigger = null as any; @@ -315,6 +320,21 @@ export const getDatabaseUsers: typeof import("./getDatabaseUsers").getDatabaseUs export const getDatabaseUsersOutput: typeof import("./getDatabaseUsers").getDatabaseUsersOutput = null as any; utilities.lazyLoad(exports, ["getDatabaseUsers","getDatabaseUsersOutput"], () => require("./getDatabaseUsers")); +export { GetEncryptionAtRestArgs, GetEncryptionAtRestResult, GetEncryptionAtRestOutputArgs } from "./getEncryptionAtRest"; +export const getEncryptionAtRest: typeof import("./getEncryptionAtRest").getEncryptionAtRest = null as any; +export const getEncryptionAtRestOutput: typeof import("./getEncryptionAtRest").getEncryptionAtRestOutput = null as any; +utilities.lazyLoad(exports, ["getEncryptionAtRest","getEncryptionAtRestOutput"], () => require("./getEncryptionAtRest")); + +export { GetEncryptionAtRestPrivateEndpointArgs, GetEncryptionAtRestPrivateEndpointResult, GetEncryptionAtRestPrivateEndpointOutputArgs } from "./getEncryptionAtRestPrivateEndpoint"; +export const getEncryptionAtRestPrivateEndpoint: typeof import("./getEncryptionAtRestPrivateEndpoint").getEncryptionAtRestPrivateEndpoint = null as any; +export const getEncryptionAtRestPrivateEndpointOutput: typeof import("./getEncryptionAtRestPrivateEndpoint").getEncryptionAtRestPrivateEndpointOutput = null as any; +utilities.lazyLoad(exports, ["getEncryptionAtRestPrivateEndpoint","getEncryptionAtRestPrivateEndpointOutput"], () => require("./getEncryptionAtRestPrivateEndpoint")); + +export { GetEncryptionAtRestPrivateEndpointsArgs, GetEncryptionAtRestPrivateEndpointsResult, GetEncryptionAtRestPrivateEndpointsOutputArgs } from "./getEncryptionAtRestPrivateEndpoints"; +export const getEncryptionAtRestPrivateEndpoints: typeof import("./getEncryptionAtRestPrivateEndpoints").getEncryptionAtRestPrivateEndpoints = null as any; +export const getEncryptionAtRestPrivateEndpointsOutput: typeof import("./getEncryptionAtRestPrivateEndpoints").getEncryptionAtRestPrivateEndpointsOutput = null as any; +utilities.lazyLoad(exports, ["getEncryptionAtRestPrivateEndpoints","getEncryptionAtRestPrivateEndpointsOutput"], () => require("./getEncryptionAtRestPrivateEndpoints")); + export { GetEventTriggerArgs, GetEventTriggerResult, GetEventTriggerOutputArgs } from "./getEventTrigger"; export const getEventTrigger: typeof import("./getEventTrigger").getEventTrigger = null as any; export const getEventTriggerOutput: typeof import("./getEventTrigger").getEventTriggerOutput = null as any; @@ -505,6 +525,11 @@ export const getProjectIpAccessList: typeof import("./getProjectIpAccessList").g export const getProjectIpAccessListOutput: typeof import("./getProjectIpAccessList").getProjectIpAccessListOutput = null as any; utilities.lazyLoad(exports, ["getProjectIpAccessList","getProjectIpAccessListOutput"], () => require("./getProjectIpAccessList")); +export { GetProjectIpAddressesArgs, GetProjectIpAddressesResult, GetProjectIpAddressesOutputArgs } from "./getProjectIpAddresses"; +export const getProjectIpAddresses: typeof import("./getProjectIpAddresses").getProjectIpAddresses = null as any; +export const getProjectIpAddressesOutput: typeof import("./getProjectIpAddresses").getProjectIpAddressesOutput = null as any; +utilities.lazyLoad(exports, ["getProjectIpAddresses","getProjectIpAddressesOutput"], () => require("./getProjectIpAddresses")); + export { GetProjectsArgs, GetProjectsResult, GetProjectsOutputArgs } from "./getProjects"; export const getProjects: typeof import("./getProjects").getProjects = null as any; export const getProjectsOutput: typeof import("./getProjects").getProjectsOutput = null as any; @@ -585,6 +610,16 @@ export const getStreamInstances: typeof import("./getStreamInstances").getStream export const getStreamInstancesOutput: typeof import("./getStreamInstances").getStreamInstancesOutput = null as any; utilities.lazyLoad(exports, ["getStreamInstances","getStreamInstancesOutput"], () => require("./getStreamInstances")); +export { GetStreamProcessorArgs, GetStreamProcessorResult, GetStreamProcessorOutputArgs } from "./getStreamProcessor"; +export const getStreamProcessor: typeof import("./getStreamProcessor").getStreamProcessor = null as any; +export const getStreamProcessorOutput: typeof import("./getStreamProcessor").getStreamProcessorOutput = null as any; +utilities.lazyLoad(exports, ["getStreamProcessor","getStreamProcessorOutput"], () => require("./getStreamProcessor")); + +export { GetStreamProcessorsArgs, GetStreamProcessorsResult, GetStreamProcessorsOutputArgs } from "./getStreamProcessors"; +export const getStreamProcessors: typeof import("./getStreamProcessors").getStreamProcessors = null as any; +export const getStreamProcessorsOutput: typeof import("./getStreamProcessors").getStreamProcessorsOutput = null as any; +utilities.lazyLoad(exports, ["getStreamProcessors","getStreamProcessorsOutput"], () => require("./getStreamProcessors")); + export { GetTeamArgs, GetTeamResult, GetTeamOutputArgs } from "./getTeam"; export const getTeam: typeof import("./getTeam").getTeam = null as any; export const getTeamOutput: typeof import("./getTeam").getTeamOutput = null as any; @@ -740,6 +775,11 @@ export type StreamInstance = import("./streamInstance").StreamInstance; export const StreamInstance: typeof import("./streamInstance").StreamInstance = null as any; utilities.lazyLoad(exports, ["StreamInstance"], () => require("./streamInstance")); +export { StreamProcessorArgs, StreamProcessorState } from "./streamProcessor"; +export type StreamProcessor = import("./streamProcessor").StreamProcessor; +export const StreamProcessor: typeof import("./streamProcessor").StreamProcessor = null as any; +utilities.lazyLoad(exports, ["StreamProcessor"], () => require("./streamProcessor")); + export { TeamArgs, TeamState } from "./team"; export type Team = import("./team").Team; export const Team: typeof import("./team").Team = null as any; @@ -814,6 +854,8 @@ const _module = { return new DatabaseUser(name, undefined, { urn }) case "mongodbatlas:index/encryptionAtRest:EncryptionAtRest": return new EncryptionAtRest(name, undefined, { urn }) + case "mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint": + return new EncryptionAtRestPrivateEndpoint(name, undefined, { urn }) case "mongodbatlas:index/eventTrigger:EventTrigger": return new EventTrigger(name, undefined, { urn }) case "mongodbatlas:index/federatedDatabaseInstance:FederatedDatabaseInstance": @@ -876,6 +918,8 @@ const _module = { return new StreamConnection(name, undefined, { urn }) case "mongodbatlas:index/streamInstance:StreamInstance": return new StreamInstance(name, undefined, { urn }) + case "mongodbatlas:index/streamProcessor:StreamProcessor": + return new StreamProcessor(name, undefined, { urn }) case "mongodbatlas:index/team:Team": return new Team(name, undefined, { urn }) case "mongodbatlas:index/teams:Teams": @@ -909,6 +953,7 @@ pulumi.runtime.registerResourceModule("mongodbatlas", "index/customDnsConfigurat pulumi.runtime.registerResourceModule("mongodbatlas", "index/dataLakePipeline", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/databaseUser", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/encryptionAtRest", _module) +pulumi.runtime.registerResourceModule("mongodbatlas", "index/encryptionAtRestPrivateEndpoint", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/eventTrigger", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/federatedDatabaseInstance", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/federatedQueryLimit", _module) @@ -940,6 +985,7 @@ pulumi.runtime.registerResourceModule("mongodbatlas", "index/searchIndex", _modu pulumi.runtime.registerResourceModule("mongodbatlas", "index/serverlessInstance", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/streamConnection", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/streamInstance", _module) +pulumi.runtime.registerResourceModule("mongodbatlas", "index/streamProcessor", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/team", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/teams", _module) pulumi.runtime.registerResourceModule("mongodbatlas", "index/thirdPartyIntegration", _module) diff --git a/sdk/nodejs/onlineArchive.ts b/sdk/nodejs/onlineArchive.ts index f4deadf9..6e9f1c84 100644 --- a/sdk/nodejs/onlineArchive.ts +++ b/sdk/nodejs/onlineArchive.ts @@ -196,6 +196,9 @@ export class OnlineArchive extends pulumi.CustomResource { * Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted */ public /*out*/ readonly state!: pulumi.Output; + /** + * 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 `false`. + */ public readonly syncCreation!: pulumi.Output; /** @@ -318,6 +321,9 @@ export interface OnlineArchiveState { * Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted */ state?: pulumi.Input; + /** + * 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 `false`. + */ syncCreation?: pulumi.Input; } @@ -369,5 +375,8 @@ export interface OnlineArchiveArgs { * Regular frequency and duration when archiving process occurs. See schedule. */ schedule?: pulumi.Input; + /** + * 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 `false`. + */ syncCreation?: pulumi.Input; } diff --git a/sdk/nodejs/project.ts b/sdk/nodejs/project.ts index 884c42f2..f6dff494 100644 --- a/sdk/nodejs/project.ts +++ b/sdk/nodejs/project.ts @@ -102,7 +102,9 @@ export class Project extends pulumi.CustomResource { */ public /*out*/ readonly created!: pulumi.Output; /** - * IP addresses in a project categorized by services. See IP Addresses. + * IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ public /*out*/ readonly ipAddresses!: pulumi.Output; /** @@ -227,7 +229,9 @@ export interface ProjectState { */ created?: pulumi.Input; /** - * IP addresses in a project categorized by services. See IP Addresses. + * IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ ipAddresses?: pulumi.Input; /** diff --git a/sdk/nodejs/streamProcessor.ts b/sdk/nodejs/streamProcessor.ts new file mode 100644 index 00000000..e18349ba --- /dev/null +++ b/sdk/nodejs/streamProcessor.ts @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## Example Usage + */ +export class StreamProcessor extends pulumi.CustomResource { + /** + * Get an existing StreamProcessor resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: StreamProcessorState, opts?: pulumi.CustomResourceOptions): StreamProcessor { + return new StreamProcessor(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'mongodbatlas:index/streamProcessor:StreamProcessor'; + + /** + * Returns true if the given object is an instance of StreamProcessor. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is StreamProcessor { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === StreamProcessor.__pulumiType; + } + + /** + * Human-readable label that identifies the stream instance. + */ + public readonly instanceName!: pulumi.Output; + /** + * Optional configuration for the stream processor. + */ + public readonly options!: pulumi.Output; + /** + * 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + */ + public readonly pipeline!: pulumi.Output; + /** + * Human-readable label that identifies the stream processor. + */ + public readonly processorName!: pulumi.Output; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + public readonly projectId!: pulumi.Output; + /** + * 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + */ + public readonly state!: pulumi.Output; + /** + * 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. + */ + public /*out*/ readonly stats!: pulumi.Output; + + /** + * Create a StreamProcessor resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: StreamProcessorArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: StreamProcessorArgs | StreamProcessorState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as StreamProcessorState | undefined; + resourceInputs["instanceName"] = state ? state.instanceName : undefined; + resourceInputs["options"] = state ? state.options : undefined; + resourceInputs["pipeline"] = state ? state.pipeline : undefined; + resourceInputs["processorName"] = state ? state.processorName : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["stats"] = state ? state.stats : undefined; + } else { + const args = argsOrState as StreamProcessorArgs | undefined; + if ((!args || args.instanceName === undefined) && !opts.urn) { + throw new Error("Missing required property 'instanceName'"); + } + if ((!args || args.pipeline === undefined) && !opts.urn) { + throw new Error("Missing required property 'pipeline'"); + } + if ((!args || args.processorName === undefined) && !opts.urn) { + throw new Error("Missing required property 'processorName'"); + } + if ((!args || args.projectId === undefined) && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["instanceName"] = args ? args.instanceName : undefined; + resourceInputs["options"] = args ? args.options : undefined; + resourceInputs["pipeline"] = args ? args.pipeline : undefined; + resourceInputs["processorName"] = args ? args.processorName : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["state"] = args ? args.state : undefined; + resourceInputs["stats"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(StreamProcessor.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering StreamProcessor resources. + */ +export interface StreamProcessorState { + /** + * Human-readable label that identifies the stream instance. + */ + instanceName?: pulumi.Input; + /** + * Optional configuration for the stream processor. + */ + options?: pulumi.Input; + /** + * 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + */ + pipeline?: pulumi.Input; + /** + * Human-readable label that identifies the stream processor. + */ + processorName?: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId?: pulumi.Input; + /** + * 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + */ + state?: pulumi.Input; + /** + * 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. + */ + stats?: pulumi.Input; +} + +/** + * The set of arguments for constructing a StreamProcessor resource. + */ +export interface StreamProcessorArgs { + /** + * Human-readable label that identifies the stream instance. + */ + instanceName: pulumi.Input; + /** + * Optional configuration for the stream processor. + */ + options?: pulumi.Input; + /** + * 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + */ + pipeline: pulumi.Input; + /** + * Human-readable label that identifies the stream processor. + */ + processorName: pulumi.Input; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId: pulumi.Input; + /** + * 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. **NOTE** When a stream processor is created, + * the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + * state is set to STARTED. + */ + state?: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 66ab9233..eb488f32 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -35,6 +35,7 @@ "dataLakePipeline.ts", "databaseUser.ts", "encryptionAtRest.ts", + "encryptionAtRestPrivateEndpoint.ts", "eventTrigger.ts", "federatedDatabaseInstance.ts", "federatedQueryLimit.ts", @@ -77,6 +78,9 @@ "getDataLakePipelines.ts", "getDatabaseUser.ts", "getDatabaseUsers.ts", + "getEncryptionAtRest.ts", + "getEncryptionAtRestPrivateEndpoint.ts", + "getEncryptionAtRestPrivateEndpoints.ts", "getEventTrigger.ts", "getEventTriggers.ts", "getFederatedDatabaseInstance.ts", @@ -115,6 +119,7 @@ "getProjectApiKeys.ts", "getProjectInvitation.ts", "getProjectIpAccessList.ts", + "getProjectIpAddresses.ts", "getProjects.ts", "getPushBasedLogExport.ts", "getRolesOrgId.ts", @@ -131,6 +136,8 @@ "getStreamConnections.ts", "getStreamInstance.ts", "getStreamInstances.ts", + "getStreamProcessor.ts", + "getStreamProcessors.ts", "getTeam.ts", "getTeams.ts", "getThirdPartyIntegration.ts", @@ -163,6 +170,7 @@ "serverlessInstance.ts", "streamConnection.ts", "streamInstance.ts", + "streamProcessor.ts", "team.ts", "teams.ts", "thirdPartyIntegration.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index ad309ad3..66718607 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -6,6 +6,10 @@ import * as inputs from "../types/input"; import * as outputs from "../types/output"; export interface AdvancedClusterAdvancedConfiguration { + /** + * 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. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds?: pulumi.Input; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -898,6 +902,10 @@ export interface CloudProviderAccessSetupAzureConfig { } export interface ClusterAdvancedConfiguration { + /** + * 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. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds?: pulumi.Input; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -1338,78 +1346,100 @@ export interface DatabaseUserScope { } export interface EncryptionAtRestAwsKmsConfig { + /** + * 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). + */ accessKeyId?: pulumi.Input; /** - * The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. */ customerMasterKeyId?: pulumi.Input; /** - * Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. */ enabled?: pulumi.Input; /** - * The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * 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. */ region?: pulumi.Input; /** - * ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `roleId` attribute of the `mongodbatlasCloudProviderAccess` resource. + * 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. */ roleId?: pulumi.Input; + /** + * 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. + */ secretAccessKey?: pulumi.Input; + /** + * Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + */ + valid?: pulumi.Input; } export interface EncryptionAtRestAzureKeyVaultConfig { /** - * The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * Azure environment in which your account credentials reside. */ azureEnvironment?: pulumi.Input; /** - * The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. */ clientId?: pulumi.Input; /** - * Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. */ enabled?: pulumi.Input; /** - * The unique identifier of a key in an Azure Key Vault. + * Web address with a unique key that identifies for your Azure Key Vault. */ keyIdentifier?: pulumi.Input; /** - * The name of an Azure Key Vault containing your key. + * Unique string that identifies the Azure Key Vault that contains your key. */ keyVaultName?: pulumi.Input; /** - * The name of the Azure Resource group that contains an Azure Key Vault. + * Enable connection to your Azure Key Vault over private networking. + */ + requirePrivateNetworking?: pulumi.Input; + /** + * Name of the Azure resource group that contains your Azure Key Vault. */ resourceGroupName?: pulumi.Input; /** - * The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * 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. */ secret?: pulumi.Input; /** - * The unique identifier associated with an Azure subscription. + * Unique 36-hexadecimal character string that identifies your Azure subscription. */ subscriptionId?: pulumi.Input; /** - * The unique identifier for an Azure AD tenant within an Azure subscription. + * Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. */ tenantId?: pulumi.Input; + /** + * Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + */ + valid?: pulumi.Input; } export interface EncryptionAtRestGoogleCloudKmsConfig { /** - * Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. */ enabled?: pulumi.Input; /** - * The Key Version Resource ID from your GCP account. + * Resource path that displays the key version resource ID for your Google Cloud KMS. */ keyVersionResourceId?: pulumi.Input; /** - * String-formatted JSON object containing GCP KMS credentials from your GCP account. + * 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. */ serviceAccountKey?: pulumi.Input; + /** + * Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + */ + valid?: pulumi.Input; } export interface EventTriggerEventProcessors { @@ -2173,6 +2203,28 @@ export interface StreamInstanceStreamConfig { tier?: pulumi.Input; } +export interface StreamProcessorOptions { + /** + * 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. + */ + dlq: pulumi.Input; +} + +export interface StreamProcessorOptionsDlq { + /** + * Name of the collection to use for the DLQ. + */ + coll: pulumi.Input; + /** + * Name of the connection to write DLQ messages to. Must be an Atlas connection. + */ + connectionName: pulumi.Input; + /** + * Name of the database to use for the DLQ. + */ + db: pulumi.Input; +} + export interface X509AuthenticationDatabaseUserCertificate { createdAt?: pulumi.Input; groupId?: pulumi.Input; diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index e7746a23..df7a658c 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -6,6 +6,10 @@ import * as inputs from "../types/input"; import * as outputs from "../types/output"; export interface AdvancedClusterAdvancedConfiguration { + /** + * 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. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds?: number; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -898,6 +902,10 @@ export interface CloudProviderAccessSetupAzureConfig { } export interface ClusterAdvancedConfiguration { + /** + * 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. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds?: number; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -1338,78 +1346,100 @@ export interface DatabaseUserScope { } export interface EncryptionAtRestAwsKmsConfig { + /** + * 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). + */ accessKeyId?: string; /** - * The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + * Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. */ customerMasterKeyId?: string; /** - * Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. */ enabled: boolean; /** - * The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + * 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. */ region?: string; /** - * ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `roleId` attribute of the `mongodbatlasCloudProviderAccess` resource. + * 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. */ roleId?: string; + /** + * 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. + */ secretAccessKey?: string; + /** + * Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + */ + valid: boolean; } export interface EncryptionAtRestAzureKeyVaultConfig { /** - * The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + * Azure environment in which your account credentials reside. */ azureEnvironment?: string; /** - * The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + * Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. */ clientId?: string; /** - * Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. */ enabled: boolean; /** - * The unique identifier of a key in an Azure Key Vault. + * Web address with a unique key that identifies for your Azure Key Vault. */ keyIdentifier?: string; /** - * The name of an Azure Key Vault containing your key. + * Unique string that identifies the Azure Key Vault that contains your key. */ keyVaultName?: string; /** - * The name of the Azure Resource group that contains an Azure Key Vault. + * Enable connection to your Azure Key Vault over private networking. + */ + requirePrivateNetworking: boolean; + /** + * Name of the Azure resource group that contains your Azure Key Vault. */ resourceGroupName?: string; /** - * The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + * 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. */ secret?: string; /** - * The unique identifier associated with an Azure subscription. + * Unique 36-hexadecimal character string that identifies your Azure subscription. */ subscriptionId?: string; /** - * The unique identifier for an Azure AD tenant within an Azure subscription. + * Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. */ tenantId?: string; + /** + * Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + */ + valid: boolean; } export interface EncryptionAtRestGoogleCloudKmsConfig { /** - * Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. */ enabled: boolean; /** - * The Key Version Resource ID from your GCP account. + * Resource path that displays the key version resource ID for your Google Cloud KMS. */ keyVersionResourceId?: string; /** - * String-formatted JSON object containing GCP KMS credentials from your GCP account. + * 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. */ serviceAccountKey?: string; + /** + * Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + */ + valid: boolean; } export interface EventTriggerEventProcessors { @@ -1603,6 +1633,10 @@ export interface GetAccessListApiKeysResult { } export interface GetAdvancedClusterAdvancedConfiguration { + /** + * (Optional) The minimum pre- and post-image retention time in seconds. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds: number; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -1962,7 +1996,7 @@ export interface GetAdvancedClustersResult { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ labels: outputs.GetAdvancedClustersResultLabel[]; /** @@ -1982,6 +2016,10 @@ export interface GetAdvancedClustersResult { * Flag that indicates if the cluster uses Continuous Cloud Backup. */ pitEnabled: boolean; + /** + * (Optional) Replica set scaling mode for your cluster. + */ + replicaSetScalingStrategy: string; /** * List of settings that configure your cluster regions. If `useReplicationSpecPerShard = true`, 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 */ @@ -2009,6 +2047,10 @@ export interface GetAdvancedClustersResult { } export interface GetAdvancedClustersResultAdvancedConfiguration { + /** + * (Optional) The minimum pre- and post-image retention time in seconds. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds: number; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. * @@ -2053,6 +2095,9 @@ export interface GetAdvancedClustersResultAdvancedConfiguration { * 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. */ sampleSizeBiConnector: number; + /** + * (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. + */ transactionLifetimeLimitSeconds: number; } @@ -3465,6 +3510,10 @@ export interface GetCloudProviderAccessSetupAzureConfig { } export interface GetClusterAdvancedConfiguration { + /** + * (Optional) The minimum pre- and post-image retention time in seconds. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds: number; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -3738,7 +3787,7 @@ export interface GetClustersResult { /** * Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. * - * @deprecated This parameter is deprecated and will be removed by September 2024. Please transition to tags. + * @deprecated This parameter is deprecated and will be removed in the future. Please transition to tags */ labels: outputs.GetClustersResultLabel[]; /** @@ -3859,6 +3908,10 @@ export interface GetClustersResult { } export interface GetClustersResultAdvancedConfiguration { + /** + * (Optional) The minimum pre- and post-image retention time in seconds. + */ + changeStreamOptionsPreAndPostImagesExpireAfterSeconds: number; /** * [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). * @@ -4522,6 +4575,134 @@ export interface GetDatabaseUsersResultScope { type: string; } +export interface GetEncryptionAtRestAwsKmsConfig { + /** + * 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). + */ + accessKeyId: string; + /** + * Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + */ + customerMasterKeyId: string; + /** + * Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + */ + enabled: boolean; + /** + * 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. + */ + region: string; + /** + * 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. + */ + roleId: string; + /** + * 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. + */ + secretAccessKey: string; + /** + * Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + */ + valid: boolean; +} + +export interface GetEncryptionAtRestAzureKeyVaultConfig { + /** + * Azure environment in which your account credentials reside. + */ + azureEnvironment: string; + /** + * Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + */ + clientId: string; + /** + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + */ + enabled: boolean; + /** + * Web address with a unique key that identifies for your Azure Key Vault. + */ + keyIdentifier: string; + /** + * Unique string that identifies the Azure Key Vault that contains your key. + */ + keyVaultName: string; + /** + * Enable connection to your Azure Key Vault over private networking. + */ + requirePrivateNetworking: boolean; + /** + * Name of the Azure resource group that contains your Azure Key Vault. + */ + resourceGroupName: string; + /** + * 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. + */ + secret: string; + /** + * Unique 36-hexadecimal character string that identifies your Azure subscription. + */ + subscriptionId: string; + /** + * Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + */ + tenantId: string; + /** + * Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + */ + valid: boolean; +} + +export interface GetEncryptionAtRestGoogleCloudKmsConfig { + /** + * Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + */ + enabled: boolean; + /** + * Resource path that displays the key version resource ID for your Google Cloud KMS. + */ + keyVersionResourceId: string; + /** + * 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. + */ + serviceAccountKey: string; + /** + * Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + */ + valid: boolean; +} + +export interface GetEncryptionAtRestPrivateEndpointsResult { + /** + * Label that identifies the cloud provider of the private endpoint. + */ + cloudProvider: string; + /** + * Error message for failures associated with the Encryption At Rest private endpoint. + */ + errorMessage: string; + /** + * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + */ + id: string; + /** + * Connection name of the Azure Private Endpoint. + */ + privateEndpointConnectionName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. + */ + projectId: string; + /** + * Cloud provider region in which the Encryption At Rest private endpoint is located. + */ + regionName: string; + /** + * State of the Encryption At Rest private endpoint. + */ + status: string; +} + export interface GetEventTriggerEventProcessor { awsEventbridges: outputs.GetEventTriggerEventProcessorAwsEventbridge[]; } @@ -5863,12 +6044,24 @@ export interface GetProjectIpAddresses { } export interface GetProjectIpAddressesServices { + /** + * IP addresses of clusters. + */ clusters: outputs.GetProjectIpAddressesServicesCluster[]; } export interface GetProjectIpAddressesServicesCluster { + /** + * Human-readable label that identifies the cluster. + */ clusterName: string; + /** + * 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. + */ inbounds: string[]; + /** + * 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. + */ outbounds: string[]; } @@ -5922,7 +6115,9 @@ export interface GetProjectsResult { */ id: string; /** - * IP addresses in a project categorized by services. See IP Addresses. + * IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `mongodbatlas.getProjectIpAddresses` data source instead. + * + * @deprecated This parameter is deprecated and will be removed by 1.21.0. Please transition to mongodbatlas.getProjectIpAddresses data source. */ ipAddresses: outputs.GetProjectsResultIpAddresses; /** @@ -6412,6 +6607,85 @@ export interface GetStreamInstancesResultStreamConfig { tier: string; } +export interface GetStreamProcessorOptions { + /** + * 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. + */ + dlq: outputs.GetStreamProcessorOptionsDlq; +} + +export interface GetStreamProcessorOptionsDlq { + /** + * Name of the collection to use for the DLQ. + */ + coll: string; + /** + * Name of the connection to write DLQ messages to. Must be an Atlas connection. + */ + connectionName: string; + /** + * Name of the database to use for the DLQ. + */ + db: string; +} + +export interface GetStreamProcessorsResult { + /** + * Unique 24-hexadecimal character string that identifies the stream processor. + */ + id: string; + /** + * Human-readable label that identifies the stream instance. + */ + instanceName: string; + /** + * Optional configuration for the stream processor. + */ + options: outputs.GetStreamProcessorsResultOptions; + /** + * Stream aggregation pipeline you want to apply to your streaming data. + */ + pipeline: string; + /** + * Human-readable label that identifies the stream processor. + */ + processorName: string; + /** + * Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + */ + projectId: string; + /** + * The state of the stream processor. + */ + state: string; + /** + * The stats associated with the stream processor. + */ + stats: string; +} + +export interface GetStreamProcessorsResultOptions { + /** + * 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. + */ + dlq: outputs.GetStreamProcessorsResultOptionsDlq; +} + +export interface GetStreamProcessorsResultOptionsDlq { + /** + * Name of the collection to use for the DLQ. + */ + coll: string; + /** + * Name of the connection to write DLQ messages to. Must be an Atlas connection. + */ + connectionName: string; + /** + * Name of the database to use for the DLQ. + */ + db: string; +} + export interface GetThirdPartyIntegrationsResult { accountId: string; /** @@ -6836,6 +7110,28 @@ export interface StreamInstanceStreamConfig { tier: string; } +export interface StreamProcessorOptions { + /** + * 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. + */ + dlq: outputs.StreamProcessorOptionsDlq; +} + +export interface StreamProcessorOptionsDlq { + /** + * Name of the collection to use for the DLQ. + */ + coll: string; + /** + * Name of the connection to write DLQ messages to. Must be an Atlas connection. + */ + connectionName: string; + /** + * Name of the database to use for the DLQ. + */ + db: string; +} + export interface X509AuthenticationDatabaseUserCertificate { createdAt: string; groupId: string; diff --git a/sdk/python/pulumi_mongodbatlas/__init__.py b/sdk/python/pulumi_mongodbatlas/__init__.py index 8f453a4d..7aa9493b 100644 --- a/sdk/python/pulumi_mongodbatlas/__init__.py +++ b/sdk/python/pulumi_mongodbatlas/__init__.py @@ -25,6 +25,7 @@ from .data_lake_pipeline import * from .database_user import * from .encryption_at_rest import * +from .encryption_at_rest_private_endpoint import * from .event_trigger import * from .federated_database_instance import * from .federated_query_limit import * @@ -67,6 +68,9 @@ from .get_data_lake_pipelines import * from .get_database_user import * from .get_database_users import * +from .get_encryption_at_rest import * +from .get_encryption_at_rest_private_endpoint import * +from .get_encryption_at_rest_private_endpoints import * from .get_event_trigger import * from .get_event_triggers import * from .get_federated_database_instance import * @@ -105,6 +109,7 @@ from .get_project_api_keys import * from .get_project_invitation import * from .get_project_ip_access_list import * +from .get_project_ip_addresses import * from .get_projects import * from .get_push_based_log_export import * from .get_roles_org_id import * @@ -121,6 +126,8 @@ from .get_stream_connections import * from .get_stream_instance import * from .get_stream_instances import * +from .get_stream_processor import * +from .get_stream_processors import * from .get_team import * from .get_teams import * from .get_third_party_integration import * @@ -152,6 +159,7 @@ from .serverless_instance import * from .stream_connection import * from .stream_instance import * +from .stream_processor import * from .team import * from .teams import * from .third_party_integration import * @@ -329,6 +337,14 @@ "mongodbatlas:index/encryptionAtRest:EncryptionAtRest": "EncryptionAtRest" } }, + { + "pkg": "mongodbatlas", + "mod": "index/encryptionAtRestPrivateEndpoint", + "fqn": "pulumi_mongodbatlas", + "classes": { + "mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint": "EncryptionAtRestPrivateEndpoint" + } + }, { "pkg": "mongodbatlas", "mod": "index/eventTrigger", @@ -577,6 +593,14 @@ "mongodbatlas:index/streamInstance:StreamInstance": "StreamInstance" } }, + { + "pkg": "mongodbatlas", + "mod": "index/streamProcessor", + "fqn": "pulumi_mongodbatlas", + "classes": { + "mongodbatlas:index/streamProcessor:StreamProcessor": "StreamProcessor" + } + }, { "pkg": "mongodbatlas", "mod": "index/team", diff --git a/sdk/python/pulumi_mongodbatlas/_inputs.py b/sdk/python/pulumi_mongodbatlas/_inputs.py index 972a33c5..0c2ec09a 100644 --- a/sdk/python/pulumi_mongodbatlas/_inputs.py +++ b/sdk/python/pulumi_mongodbatlas/_inputs.py @@ -123,6 +123,8 @@ 'StreamConnectionSecurityArgs', 'StreamInstanceDataProcessRegionArgs', 'StreamInstanceStreamConfigArgs', + 'StreamProcessorOptionsArgs', + 'StreamProcessorOptionsDlqArgs', 'X509AuthenticationDatabaseUserCertificateArgs', 'GetAlertConfigurationOutputArgs', 'GetAlertConfigurationsListOptionArgs', @@ -137,6 +139,7 @@ @pulumi.input_type class AdvancedClusterAdvancedConfigurationArgs: def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: Optional[pulumi.Input[int]] = None, default_read_concern: Optional[pulumi.Input[str]] = None, default_write_concern: Optional[pulumi.Input[str]] = None, fail_index_key_too_long: Optional[pulumi.Input[bool]] = None, @@ -149,6 +152,7 @@ def __init__(__self__, *, sample_size_bi_connector: Optional[pulumi.Input[int]] = None, transaction_lifetime_limit_seconds: Optional[pulumi.Input[int]] = None): """ + :param pulumi.Input[int] change_stream_options_pre_and_post_images_expire_after_seconds: 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. :param pulumi.Input[str] default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. :param pulumi.Input[str] default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param pulumi.Input[bool] fail_index_key_too_long: 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. **(DEPRECATED)** This parameter has been removed as of [MongoDB 4.4](https://www.mongodb.com/docs/manual/reference/parameters/#mongodb-parameter-param.failIndexKeyTooLong). @@ -166,6 +170,8 @@ def __init__(__self__, *, :param pulumi.Input[int] sample_size_bi_connector: 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. :param pulumi.Input[int] transaction_lifetime_limit_seconds: Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + if change_stream_options_pre_and_post_images_expire_after_seconds is not None: + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) if default_read_concern is not None: warnings.warn("""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.html.markdown""", DeprecationWarning) pulumi.log.warn("""default_read_concern is deprecated: 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.html.markdown""") @@ -195,6 +201,18 @@ def __init__(__self__, *, if transaction_lifetime_limit_seconds is not None: pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> Optional[pulumi.Input[int]]: + """ + 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. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + + @change_stream_options_pre_and_post_images_expire_after_seconds.setter + def change_stream_options_pre_and_post_images_expire_after_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "change_stream_options_pre_and_post_images_expire_after_seconds", value) + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -3531,6 +3549,7 @@ def tenant_id(self, value: pulumi.Input[str]): @pulumi.input_type class ClusterAdvancedConfigurationArgs: def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: Optional[pulumi.Input[int]] = None, default_read_concern: Optional[pulumi.Input[str]] = None, default_write_concern: Optional[pulumi.Input[str]] = None, fail_index_key_too_long: Optional[pulumi.Input[bool]] = None, @@ -3543,6 +3562,7 @@ def __init__(__self__, *, sample_size_bi_connector: Optional[pulumi.Input[int]] = None, transaction_lifetime_limit_seconds: Optional[pulumi.Input[int]] = None): """ + :param pulumi.Input[int] change_stream_options_pre_and_post_images_expire_after_seconds: 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. :param pulumi.Input[str] default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). :param pulumi.Input[str] default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param pulumi.Input[bool] fail_index_key_too_long: 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. @@ -3560,6 +3580,8 @@ def __init__(__self__, *, :param pulumi.Input[int] sample_size_bi_connector: 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. :param pulumi.Input[int] transaction_lifetime_limit_seconds: Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + if change_stream_options_pre_and_post_images_expire_after_seconds is not None: + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) if default_read_concern is not None: warnings.warn("""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.html.markdown""", DeprecationWarning) pulumi.log.warn("""default_read_concern is deprecated: 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.html.markdown""") @@ -3589,6 +3611,18 @@ def __init__(__self__, *, if transaction_lifetime_limit_seconds is not None: pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> Optional[pulumi.Input[int]]: + """ + 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. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + + @change_stream_options_pre_and_post_images_expire_after_seconds.setter + def change_stream_options_pre_and_post_images_expire_after_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "change_stream_options_pre_and_post_images_expire_after_seconds", value) + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -5335,12 +5369,16 @@ def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, role_id: Optional[pulumi.Input[str]] = None, - secret_access_key: Optional[pulumi.Input[str]] = None): + secret_access_key: Optional[pulumi.Input[str]] = None, + valid: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[str] customer_master_key_id: The AWS customer master key used to encrypt and decrypt the MongoDB master keys. - :param pulumi.Input[bool] enabled: Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. - :param pulumi.Input[str] region: The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 - :param pulumi.Input[str] role_id: ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + :param pulumi.Input[str] access_key_id: 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). + :param pulumi.Input[str] customer_master_key_id: Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + :param pulumi.Input[bool] enabled: Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param pulumi.Input[str] region: 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. + :param pulumi.Input[str] role_id: 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. + :param pulumi.Input[str] secret_access_key: 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. + :param pulumi.Input[bool] valid: Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. """ if access_key_id is not None: pulumi.set(__self__, "access_key_id", access_key_id) @@ -5354,10 +5392,15 @@ def __init__(__self__, *, pulumi.set(__self__, "role_id", role_id) if secret_access_key is not None: pulumi.set(__self__, "secret_access_key", secret_access_key) + if valid is not None: + pulumi.set(__self__, "valid", valid) @property @pulumi.getter(name="accessKeyId") def access_key_id(self) -> Optional[pulumi.Input[str]]: + """ + 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). + """ return pulumi.get(self, "access_key_id") @access_key_id.setter @@ -5368,7 +5411,7 @@ def access_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="customerMasterKeyId") def customer_master_key_id(self) -> Optional[pulumi.Input[str]]: """ - The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. """ return pulumi.get(self, "customer_master_key_id") @@ -5380,7 +5423,7 @@ def customer_master_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. """ return pulumi.get(self, "enabled") @@ -5392,7 +5435,7 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def region(self) -> Optional[pulumi.Input[str]]: """ - The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + 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. """ return pulumi.get(self, "region") @@ -5404,7 +5447,7 @@ def region(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="roleId") def role_id(self) -> Optional[pulumi.Input[str]]: """ - ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + 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. """ return pulumi.get(self, "role_id") @@ -5415,12 +5458,27 @@ def role_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="secretAccessKey") def secret_access_key(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ return pulumi.get(self, "secret_access_key") @secret_access_key.setter def secret_access_key(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "secret_access_key", value) + @property + @pulumi.getter + def valid(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + + @valid.setter + def valid(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "valid", value) + @pulumi.input_type class EncryptionAtRestAzureKeyVaultConfigArgs: @@ -5430,20 +5488,24 @@ def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, key_identifier: Optional[pulumi.Input[str]] = None, key_vault_name: Optional[pulumi.Input[str]] = None, + require_private_networking: Optional[pulumi.Input[bool]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, secret: Optional[pulumi.Input[str]] = None, subscription_id: Optional[pulumi.Input[str]] = None, - tenant_id: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] azure_environment: The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY - :param pulumi.Input[str] client_id: The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. - :param pulumi.Input[bool] enabled: Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. - :param pulumi.Input[str] key_identifier: The unique identifier of a key in an Azure Key Vault. - :param pulumi.Input[str] key_vault_name: The name of an Azure Key Vault containing your key. - :param pulumi.Input[str] resource_group_name: The name of the Azure Resource group that contains an Azure Key Vault. - :param pulumi.Input[str] secret: The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. - :param pulumi.Input[str] subscription_id: The unique identifier associated with an Azure subscription. - :param pulumi.Input[str] tenant_id: The unique identifier for an Azure AD tenant within an Azure subscription. + tenant_id: Optional[pulumi.Input[str]] = None, + valid: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] azure_environment: Azure environment in which your account credentials reside. + :param pulumi.Input[str] client_id: Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + :param pulumi.Input[bool] enabled: Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param pulumi.Input[str] key_identifier: Web address with a unique key that identifies for your Azure Key Vault. + :param pulumi.Input[str] key_vault_name: Unique string that identifies the Azure Key Vault that contains your key. + :param pulumi.Input[bool] require_private_networking: Enable connection to your Azure Key Vault over private networking. + :param pulumi.Input[str] resource_group_name: Name of the Azure resource group that contains your Azure Key Vault. + :param pulumi.Input[str] secret: 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. + :param pulumi.Input[str] subscription_id: Unique 36-hexadecimal character string that identifies your Azure subscription. + :param pulumi.Input[str] tenant_id: Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + :param pulumi.Input[bool] valid: Flag that indicates whether the Azure encryption key can encrypt and decrypt data. """ if azure_environment is not None: pulumi.set(__self__, "azure_environment", azure_environment) @@ -5455,6 +5517,8 @@ def __init__(__self__, *, pulumi.set(__self__, "key_identifier", key_identifier) if key_vault_name is not None: pulumi.set(__self__, "key_vault_name", key_vault_name) + if require_private_networking is not None: + pulumi.set(__self__, "require_private_networking", require_private_networking) if resource_group_name is not None: pulumi.set(__self__, "resource_group_name", resource_group_name) if secret is not None: @@ -5463,12 +5527,14 @@ def __init__(__self__, *, pulumi.set(__self__, "subscription_id", subscription_id) if tenant_id is not None: pulumi.set(__self__, "tenant_id", tenant_id) + if valid is not None: + pulumi.set(__self__, "valid", valid) @property @pulumi.getter(name="azureEnvironment") def azure_environment(self) -> Optional[pulumi.Input[str]]: """ - The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + Azure environment in which your account credentials reside. """ return pulumi.get(self, "azure_environment") @@ -5480,7 +5546,7 @@ def azure_environment(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="clientId") def client_id(self) -> Optional[pulumi.Input[str]]: """ - The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. """ return pulumi.get(self, "client_id") @@ -5492,7 +5558,7 @@ def client_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. """ return pulumi.get(self, "enabled") @@ -5504,7 +5570,7 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="keyIdentifier") def key_identifier(self) -> Optional[pulumi.Input[str]]: """ - The unique identifier of a key in an Azure Key Vault. + Web address with a unique key that identifies for your Azure Key Vault. """ return pulumi.get(self, "key_identifier") @@ -5516,7 +5582,7 @@ def key_identifier(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="keyVaultName") def key_vault_name(self) -> Optional[pulumi.Input[str]]: """ - The name of an Azure Key Vault containing your key. + Unique string that identifies the Azure Key Vault that contains your key. """ return pulumi.get(self, "key_vault_name") @@ -5524,11 +5590,23 @@ def key_vault_name(self) -> Optional[pulumi.Input[str]]: def key_vault_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "key_vault_name", value) + @property + @pulumi.getter(name="requirePrivateNetworking") + def require_private_networking(self) -> Optional[pulumi.Input[bool]]: + """ + Enable connection to your Azure Key Vault over private networking. + """ + return pulumi.get(self, "require_private_networking") + + @require_private_networking.setter + def require_private_networking(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "require_private_networking", value) + @property @pulumi.getter(name="resourceGroupName") def resource_group_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the Azure Resource group that contains an Azure Key Vault. + Name of the Azure resource group that contains your Azure Key Vault. """ return pulumi.get(self, "resource_group_name") @@ -5540,7 +5618,7 @@ def resource_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def secret(self) -> Optional[pulumi.Input[str]]: """ - The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + 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. """ return pulumi.get(self, "secret") @@ -5552,7 +5630,7 @@ def secret(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="subscriptionId") def subscription_id(self) -> Optional[pulumi.Input[str]]: """ - The unique identifier associated with an Azure subscription. + Unique 36-hexadecimal character string that identifies your Azure subscription. """ return pulumi.get(self, "subscription_id") @@ -5564,7 +5642,7 @@ def subscription_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="tenantId") def tenant_id(self) -> Optional[pulumi.Input[str]]: """ - The unique identifier for an Azure AD tenant within an Azure subscription. + Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. """ return pulumi.get(self, "tenant_id") @@ -5572,17 +5650,31 @@ def tenant_id(self) -> Optional[pulumi.Input[str]]: def tenant_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "tenant_id", value) + @property + @pulumi.getter + def valid(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + + @valid.setter + def valid(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "valid", value) + @pulumi.input_type class EncryptionAtRestGoogleCloudKmsConfigArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, key_version_resource_id: Optional[pulumi.Input[str]] = None, - service_account_key: Optional[pulumi.Input[str]] = None): + service_account_key: Optional[pulumi.Input[str]] = None, + valid: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[bool] enabled: Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. - :param pulumi.Input[str] key_version_resource_id: The Key Version Resource ID from your GCP account. - :param pulumi.Input[str] service_account_key: String-formatted JSON object containing GCP KMS credentials from your GCP account. + :param pulumi.Input[bool] enabled: Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param pulumi.Input[str] key_version_resource_id: Resource path that displays the key version resource ID for your Google Cloud KMS. + :param pulumi.Input[str] service_account_key: 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. + :param pulumi.Input[bool] valid: Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. """ if enabled is not None: pulumi.set(__self__, "enabled", enabled) @@ -5590,12 +5682,14 @@ def __init__(__self__, *, pulumi.set(__self__, "key_version_resource_id", key_version_resource_id) if service_account_key is not None: pulumi.set(__self__, "service_account_key", service_account_key) + if valid is not None: + pulumi.set(__self__, "valid", valid) @property @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. """ return pulumi.get(self, "enabled") @@ -5607,7 +5701,7 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="keyVersionResourceId") def key_version_resource_id(self) -> Optional[pulumi.Input[str]]: """ - The Key Version Resource ID from your GCP account. + Resource path that displays the key version resource ID for your Google Cloud KMS. """ return pulumi.get(self, "key_version_resource_id") @@ -5619,7 +5713,7 @@ def key_version_resource_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="serviceAccountKey") def service_account_key(self) -> Optional[pulumi.Input[str]]: """ - String-formatted JSON object containing GCP KMS credentials from your GCP account. + 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. """ return pulumi.get(self, "service_account_key") @@ -5627,6 +5721,18 @@ def service_account_key(self) -> Optional[pulumi.Input[str]]: def service_account_key(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "service_account_key", value) + @property + @pulumi.getter + def valid(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + + @valid.setter + def valid(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "valid", value) + @pulumi.input_type class EventTriggerEventProcessorsArgs: @@ -8020,6 +8126,80 @@ def tier(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "tier", value) +@pulumi.input_type +class StreamProcessorOptionsArgs: + def __init__(__self__, *, + dlq: pulumi.Input['StreamProcessorOptionsDlqArgs']): + """ + :param pulumi.Input['StreamProcessorOptionsDlqArgs'] dlq: 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. + """ + pulumi.set(__self__, "dlq", dlq) + + @property + @pulumi.getter + def dlq(self) -> pulumi.Input['StreamProcessorOptionsDlqArgs']: + """ + 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. + """ + return pulumi.get(self, "dlq") + + @dlq.setter + def dlq(self, value: pulumi.Input['StreamProcessorOptionsDlqArgs']): + pulumi.set(self, "dlq", value) + + +@pulumi.input_type +class StreamProcessorOptionsDlqArgs: + def __init__(__self__, *, + coll: pulumi.Input[str], + connection_name: pulumi.Input[str], + db: pulumi.Input[str]): + """ + :param pulumi.Input[str] coll: Name of the collection to use for the DLQ. + :param pulumi.Input[str] connection_name: Name of the connection to write DLQ messages to. Must be an Atlas connection. + :param pulumi.Input[str] db: Name of the database to use for the DLQ. + """ + pulumi.set(__self__, "coll", coll) + pulumi.set(__self__, "connection_name", connection_name) + pulumi.set(__self__, "db", db) + + @property + @pulumi.getter + def coll(self) -> pulumi.Input[str]: + """ + Name of the collection to use for the DLQ. + """ + return pulumi.get(self, "coll") + + @coll.setter + def coll(self, value: pulumi.Input[str]): + pulumi.set(self, "coll", value) + + @property + @pulumi.getter(name="connectionName") + def connection_name(self) -> pulumi.Input[str]: + """ + Name of the connection to write DLQ messages to. Must be an Atlas connection. + """ + return pulumi.get(self, "connection_name") + + @connection_name.setter + def connection_name(self, value: pulumi.Input[str]): + pulumi.set(self, "connection_name", value) + + @property + @pulumi.getter + def db(self) -> pulumi.Input[str]: + """ + Name of the database to use for the DLQ. + """ + return pulumi.get(self, "db") + + @db.setter + def db(self, value: pulumi.Input[str]): + pulumi.set(self, "db", value) + + @pulumi.input_type class X509AuthenticationDatabaseUserCertificateArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_mongodbatlas/advanced_cluster.py b/sdk/python/pulumi_mongodbatlas/advanced_cluster.py index 6fe729fa..c384d701 100644 --- a/sdk/python/pulumi_mongodbatlas/advanced_cluster.py +++ b/sdk/python/pulumi_mongodbatlas/advanced_cluster.py @@ -31,6 +31,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, paused: Optional[pulumi.Input[bool]] = None, pit_enabled: Optional[pulumi.Input[bool]] = None, + replica_set_scaling_strategy: Optional[pulumi.Input[str]] = None, retain_backups_enabled: Optional[pulumi.Input[bool]] = None, root_cert_type: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['AdvancedClusterTagArgs']]]] = None, @@ -63,6 +64,7 @@ def __init__(__self__, *, :param pulumi.Input[str] mongo_db_major_version: Version of the cluster to deploy. Atlas supports the following MongoDB versions for M10+ clusters: `4.4`, `5.0`, `6.0` or `7.0`. If omitted, Atlas deploys a cluster that runs MongoDB 7.0. If `replication_specs#.region_configs#.Specs.instance_size`: `M0`, `M2` or `M5`, Atlas deploys MongoDB 4.4. Atlas always deploys the cluster with the latest stable release of the specified version. If you set a value to this parameter and set `version_release_system` `CONTINUOUS`, the resource returns an error. Either clear this parameter or set `version_release_system`: `LTS`. :param pulumi.Input[str] name: 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. :param pulumi.Input[bool] pit_enabled: Flag that indicates if the cluster uses Continuous Cloud Backup. + :param pulumi.Input[str] replica_set_scaling_strategy: 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) :param pulumi.Input[bool] retain_backups_enabled: Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster :param pulumi.Input[str] root_cert_type: Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1). :param pulumi.Input[Sequence[pulumi.Input['AdvancedClusterTagArgs']]] tags: Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. @@ -92,8 +94,8 @@ def __init__(__self__, *, if global_cluster_self_managed_sharding is not None: pulumi.set(__self__, "global_cluster_self_managed_sharding", global_cluster_self_managed_sharding) if labels is not None: - warnings.warn("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""", DeprecationWarning) - pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + warnings.warn("""This parameter is deprecated and will be removed in the future. Please transition to tags""", DeprecationWarning) + pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags""") if labels is not None: pulumi.set(__self__, "labels", labels) if mongo_db_major_version is not None: @@ -104,6 +106,8 @@ def __init__(__self__, *, pulumi.set(__self__, "paused", paused) if pit_enabled is not None: pulumi.set(__self__, "pit_enabled", pit_enabled) + if replica_set_scaling_strategy is not None: + pulumi.set(__self__, "replica_set_scaling_strategy", replica_set_scaling_strategy) if retain_backups_enabled is not None: pulumi.set(__self__, "retain_backups_enabled", retain_backups_enabled) if root_cert_type is not None: @@ -247,7 +251,7 @@ def global_cluster_self_managed_sharding(self, value: Optional[pulumi.Input[bool @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AdvancedClusterLabelArgs']]]]: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. @@ -303,6 +307,18 @@ def pit_enabled(self) -> Optional[pulumi.Input[bool]]: def pit_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "pit_enabled", value) + @property + @pulumi.getter(name="replicaSetScalingStrategy") + def replica_set_scaling_strategy(self) -> Optional[pulumi.Input[str]]: + """ + 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) + """ + return pulumi.get(self, "replica_set_scaling_strategy") + + @replica_set_scaling_strategy.setter + def replica_set_scaling_strategy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "replica_set_scaling_strategy", value) + @property @pulumi.getter(name="retainBackupsEnabled") def retain_backups_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -387,6 +403,7 @@ def __init__(__self__, *, paused: Optional[pulumi.Input[bool]] = None, pit_enabled: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, + replica_set_scaling_strategy: Optional[pulumi.Input[str]] = None, replication_specs: Optional[pulumi.Input[Sequence[pulumi.Input['AdvancedClusterReplicationSpecArgs']]]] = None, retain_backups_enabled: Optional[pulumi.Input[bool]] = None, root_cert_type: Optional[pulumi.Input[str]] = None, @@ -423,6 +440,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: 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. :param pulumi.Input[bool] pit_enabled: Flag that indicates if the cluster uses Continuous Cloud Backup. :param pulumi.Input[str] project_id: Unique ID for the project to create the database user. + :param pulumi.Input[str] replica_set_scaling_strategy: 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) :param pulumi.Input[Sequence[pulumi.Input['AdvancedClusterReplicationSpecArgs']]] replication_specs: 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below :param pulumi.Input[bool] retain_backups_enabled: Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster :param pulumi.Input[str] root_cert_type: Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1). @@ -466,8 +484,8 @@ def __init__(__self__, *, if global_cluster_self_managed_sharding is not None: pulumi.set(__self__, "global_cluster_self_managed_sharding", global_cluster_self_managed_sharding) if labels is not None: - warnings.warn("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""", DeprecationWarning) - pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + warnings.warn("""This parameter is deprecated and will be removed in the future. Please transition to tags""", DeprecationWarning) + pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags""") if labels is not None: pulumi.set(__self__, "labels", labels) if mongo_db_major_version is not None: @@ -482,6 +500,8 @@ def __init__(__self__, *, pulumi.set(__self__, "pit_enabled", pit_enabled) if project_id is not None: pulumi.set(__self__, "project_id", project_id) + if replica_set_scaling_strategy is not None: + pulumi.set(__self__, "replica_set_scaling_strategy", replica_set_scaling_strategy) if replication_specs is not None: pulumi.set(__self__, "replication_specs", replication_specs) if retain_backups_enabled is not None: @@ -638,7 +658,7 @@ def global_cluster_self_managed_sharding(self, value: Optional[pulumi.Input[bool @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AdvancedClusterLabelArgs']]]]: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. @@ -718,6 +738,18 @@ def project_id(self) -> Optional[pulumi.Input[str]]: def project_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "project_id", value) + @property + @pulumi.getter(name="replicaSetScalingStrategy") + def replica_set_scaling_strategy(self) -> Optional[pulumi.Input[str]]: + """ + 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) + """ + return pulumi.get(self, "replica_set_scaling_strategy") + + @replica_set_scaling_strategy.setter + def replica_set_scaling_strategy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "replica_set_scaling_strategy", value) + @property @pulumi.getter(name="replicationSpecs") def replication_specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AdvancedClusterReplicationSpecArgs']]]]: @@ -831,6 +863,7 @@ def __init__(__self__, paused: Optional[pulumi.Input[bool]] = None, pit_enabled: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, + replica_set_scaling_strategy: Optional[pulumi.Input[str]] = None, replication_specs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AdvancedClusterReplicationSpecArgs', 'AdvancedClusterReplicationSpecArgsDict']]]]] = None, retain_backups_enabled: Optional[pulumi.Input[bool]] = None, root_cert_type: Optional[pulumi.Input[str]] = None, @@ -1198,6 +1231,7 @@ def __init__(__self__, :param pulumi.Input[str] name: 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. :param pulumi.Input[bool] pit_enabled: Flag that indicates if the cluster uses Continuous Cloud Backup. :param pulumi.Input[str] project_id: Unique ID for the project to create the database user. + :param pulumi.Input[str] replica_set_scaling_strategy: 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) :param pulumi.Input[Sequence[pulumi.Input[Union['AdvancedClusterReplicationSpecArgs', 'AdvancedClusterReplicationSpecArgsDict']]]] replication_specs: 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below :param pulumi.Input[bool] retain_backups_enabled: Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster :param pulumi.Input[str] root_cert_type: Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1). @@ -1576,6 +1610,7 @@ def _internal_init(__self__, paused: Optional[pulumi.Input[bool]] = None, pit_enabled: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, + replica_set_scaling_strategy: Optional[pulumi.Input[str]] = None, replication_specs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AdvancedClusterReplicationSpecArgs', 'AdvancedClusterReplicationSpecArgsDict']]]]] = None, retain_backups_enabled: Optional[pulumi.Input[bool]] = None, root_cert_type: Optional[pulumi.Input[str]] = None, @@ -1609,6 +1644,7 @@ def _internal_init(__self__, if project_id is None and not opts.urn: raise TypeError("Missing required property 'project_id'") __props__.__dict__["project_id"] = project_id + __props__.__dict__["replica_set_scaling_strategy"] = replica_set_scaling_strategy if replication_specs is None and not opts.urn: raise TypeError("Missing required property 'replication_specs'") __props__.__dict__["replication_specs"] = replication_specs @@ -1650,6 +1686,7 @@ def get(resource_name: str, paused: Optional[pulumi.Input[bool]] = None, pit_enabled: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, + replica_set_scaling_strategy: Optional[pulumi.Input[str]] = None, replication_specs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AdvancedClusterReplicationSpecArgs', 'AdvancedClusterReplicationSpecArgsDict']]]]] = None, retain_backups_enabled: Optional[pulumi.Input[bool]] = None, root_cert_type: Optional[pulumi.Input[str]] = None, @@ -1691,6 +1728,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: 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. :param pulumi.Input[bool] pit_enabled: Flag that indicates if the cluster uses Continuous Cloud Backup. :param pulumi.Input[str] project_id: Unique ID for the project to create the database user. + :param pulumi.Input[str] replica_set_scaling_strategy: 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) :param pulumi.Input[Sequence[pulumi.Input[Union['AdvancedClusterReplicationSpecArgs', 'AdvancedClusterReplicationSpecArgsDict']]]] replication_specs: 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. If for each replication_spec `num_shards` is configured with a value greater than 1 (using deprecated sharding configurations), then each object represents a zone with one or more shards. See below :param pulumi.Input[bool] retain_backups_enabled: Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster :param pulumi.Input[str] root_cert_type: Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1). @@ -1730,6 +1768,7 @@ def get(resource_name: str, __props__.__dict__["paused"] = paused __props__.__dict__["pit_enabled"] = pit_enabled __props__.__dict__["project_id"] = project_id + __props__.__dict__["replica_set_scaling_strategy"] = replica_set_scaling_strategy __props__.__dict__["replication_specs"] = replication_specs __props__.__dict__["retain_backups_enabled"] = retain_backups_enabled __props__.__dict__["root_cert_type"] = root_cert_type @@ -1836,7 +1875,7 @@ def global_cluster_self_managed_sharding(self) -> pulumi.Output[bool]: @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> pulumi.Output[Optional[Sequence['outputs.AdvancedClusterLabel']]]: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. @@ -1888,6 +1927,14 @@ def project_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "project_id") + @property + @pulumi.getter(name="replicaSetScalingStrategy") + def replica_set_scaling_strategy(self) -> pulumi.Output[str]: + """ + 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) + """ + return pulumi.get(self, "replica_set_scaling_strategy") + @property @pulumi.getter(name="replicationSpecs") def replication_specs(self) -> pulumi.Output[Sequence['outputs.AdvancedClusterReplicationSpec']]: diff --git a/sdk/python/pulumi_mongodbatlas/cluster.py b/sdk/python/pulumi_mongodbatlas/cluster.py index 13655668..8b760606 100644 --- a/sdk/python/pulumi_mongodbatlas/cluster.py +++ b/sdk/python/pulumi_mongodbatlas/cluster.py @@ -151,8 +151,8 @@ def __init__(__self__, *, if encryption_at_rest_provider is not None: pulumi.set(__self__, "encryption_at_rest_provider", encryption_at_rest_provider) if labels is not None: - warnings.warn("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""", DeprecationWarning) - pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + warnings.warn("""This parameter is deprecated and will be removed in the future. Please transition to tags""", DeprecationWarning) + pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags""") if labels is not None: pulumi.set(__self__, "labels", labels) if mongo_db_major_version is not None: @@ -401,7 +401,7 @@ def encryption_at_rest_provider(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterLabelArgs']]]]: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. @@ -800,8 +800,8 @@ def __init__(__self__, *, if encryption_at_rest_provider is not None: pulumi.set(__self__, "encryption_at_rest_provider", encryption_at_rest_provider) if labels is not None: - warnings.warn("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""", DeprecationWarning) - pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + warnings.warn("""This parameter is deprecated and will be removed in the future. Please transition to tags""", DeprecationWarning) + pulumi.log.warn("""labels is deprecated: This parameter is deprecated and will be removed in the future. Please transition to tags""") if labels is not None: pulumi.set(__self__, "labels", labels) if mongo_db_major_version is not None: @@ -1065,7 +1065,7 @@ def encryption_at_rest_provider(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterLabelArgs']]]]: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. @@ -2419,7 +2419,7 @@ def encryption_at_rest_provider(self) -> pulumi.Output[str]: @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> pulumi.Output[Optional[Sequence['outputs.ClusterLabel']]]: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. diff --git a/sdk/python/pulumi_mongodbatlas/encryption_at_rest.py b/sdk/python/pulumi_mongodbatlas/encryption_at_rest.py index bf53852a..b413ed7a 100644 --- a/sdk/python/pulumi_mongodbatlas/encryption_at_rest.py +++ b/sdk/python/pulumi_mongodbatlas/encryption_at_rest.py @@ -22,7 +22,10 @@ def __init__(__self__, *, google_cloud_kms_config: Optional[pulumi.Input['EncryptionAtRestGoogleCloudKmsConfigArgs']] = None): """ The set of arguments for constructing a EncryptionAtRest resource. - :param pulumi.Input[str] project_id: The unique identifier for the project. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. + :param pulumi.Input['EncryptionAtRestAwsKmsConfigArgs'] aws_kms_config: Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + :param pulumi.Input['EncryptionAtRestAzureKeyVaultConfigArgs'] azure_key_vault_config: Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + :param pulumi.Input['EncryptionAtRestGoogleCloudKmsConfigArgs'] google_cloud_kms_config: Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). """ pulumi.set(__self__, "project_id", project_id) if aws_kms_config is not None: @@ -36,7 +39,7 @@ def __init__(__self__, *, @pulumi.getter(name="projectId") def project_id(self) -> pulumi.Input[str]: """ - The unique identifier for the project. + Unique 24-hexadecimal digit string that identifies your project. """ return pulumi.get(self, "project_id") @@ -47,6 +50,9 @@ def project_id(self, value: pulumi.Input[str]): @property @pulumi.getter(name="awsKmsConfig") def aws_kms_config(self) -> Optional[pulumi.Input['EncryptionAtRestAwsKmsConfigArgs']]: + """ + Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + """ return pulumi.get(self, "aws_kms_config") @aws_kms_config.setter @@ -56,6 +62,9 @@ def aws_kms_config(self, value: Optional[pulumi.Input['EncryptionAtRestAwsKmsCon @property @pulumi.getter(name="azureKeyVaultConfig") def azure_key_vault_config(self) -> Optional[pulumi.Input['EncryptionAtRestAzureKeyVaultConfigArgs']]: + """ + Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + """ return pulumi.get(self, "azure_key_vault_config") @azure_key_vault_config.setter @@ -65,6 +74,9 @@ def azure_key_vault_config(self, value: Optional[pulumi.Input['EncryptionAtRestA @property @pulumi.getter(name="googleCloudKmsConfig") def google_cloud_kms_config(self) -> Optional[pulumi.Input['EncryptionAtRestGoogleCloudKmsConfigArgs']]: + """ + Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + """ return pulumi.get(self, "google_cloud_kms_config") @google_cloud_kms_config.setter @@ -81,7 +93,10 @@ def __init__(__self__, *, project_id: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering EncryptionAtRest resources. - :param pulumi.Input[str] project_id: The unique identifier for the project. + :param pulumi.Input['EncryptionAtRestAwsKmsConfigArgs'] aws_kms_config: Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + :param pulumi.Input['EncryptionAtRestAzureKeyVaultConfigArgs'] azure_key_vault_config: Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + :param pulumi.Input['EncryptionAtRestGoogleCloudKmsConfigArgs'] google_cloud_kms_config: Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. """ if aws_kms_config is not None: pulumi.set(__self__, "aws_kms_config", aws_kms_config) @@ -95,6 +110,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="awsKmsConfig") def aws_kms_config(self) -> Optional[pulumi.Input['EncryptionAtRestAwsKmsConfigArgs']]: + """ + Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + """ return pulumi.get(self, "aws_kms_config") @aws_kms_config.setter @@ -104,6 +122,9 @@ def aws_kms_config(self, value: Optional[pulumi.Input['EncryptionAtRestAwsKmsCon @property @pulumi.getter(name="azureKeyVaultConfig") def azure_key_vault_config(self) -> Optional[pulumi.Input['EncryptionAtRestAzureKeyVaultConfigArgs']]: + """ + Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + """ return pulumi.get(self, "azure_key_vault_config") @azure_key_vault_config.setter @@ -113,6 +134,9 @@ def azure_key_vault_config(self, value: Optional[pulumi.Input['EncryptionAtRestA @property @pulumi.getter(name="googleCloudKmsConfig") def google_cloud_kms_config(self) -> Optional[pulumi.Input['EncryptionAtRestGoogleCloudKmsConfigArgs']]: + """ + Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + """ return pulumi.get(self, "google_cloud_kms_config") @google_cloud_kms_config.setter @@ -123,7 +147,7 @@ def google_cloud_kms_config(self, value: Optional[pulumi.Input['EncryptionAtRest @pulumi.getter(name="projectId") def project_id(self) -> Optional[pulumi.Input[str]]: """ - The unique identifier for the project. + Unique 24-hexadecimal digit string that identifies your project. """ return pulumi.get(self, "project_id") @@ -143,18 +167,13 @@ def __init__(__self__, project_id: Optional[pulumi.Input[str]] = None, __props__=None): """ - ## Import - - Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g. - - ```sh - $ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934 - ``` - For more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management) - + Create a EncryptionAtRest resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] project_id: The unique identifier for the project. + :param pulumi.Input[Union['EncryptionAtRestAwsKmsConfigArgs', 'EncryptionAtRestAwsKmsConfigArgsDict']] aws_kms_config: Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + :param pulumi.Input[Union['EncryptionAtRestAzureKeyVaultConfigArgs', 'EncryptionAtRestAzureKeyVaultConfigArgsDict']] azure_key_vault_config: Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + :param pulumi.Input[Union['EncryptionAtRestGoogleCloudKmsConfigArgs', 'EncryptionAtRestGoogleCloudKmsConfigArgsDict']] google_cloud_kms_config: Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. """ ... @overload @@ -163,15 +182,7 @@ def __init__(__self__, args: EncryptionAtRestArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - ## Import - - Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g. - - ```sh - $ pulumi import mongodbatlas:index/encryptionAtRest:EncryptionAtRest example 1112222b3bf99403840e8934 - ``` - For more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management) - + Create a EncryptionAtRest resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param EncryptionAtRestArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -227,7 +238,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] project_id: The unique identifier for the project. + :param pulumi.Input[Union['EncryptionAtRestAwsKmsConfigArgs', 'EncryptionAtRestAwsKmsConfigArgsDict']] aws_kms_config: Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + :param pulumi.Input[Union['EncryptionAtRestAzureKeyVaultConfigArgs', 'EncryptionAtRestAzureKeyVaultConfigArgsDict']] azure_key_vault_config: Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + :param pulumi.Input[Union['EncryptionAtRestGoogleCloudKmsConfigArgs', 'EncryptionAtRestGoogleCloudKmsConfigArgsDict']] google_cloud_kms_config: Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -242,23 +256,32 @@ def get(resource_name: str, @property @pulumi.getter(name="awsKmsConfig") def aws_kms_config(self) -> pulumi.Output[Optional['outputs.EncryptionAtRestAwsKmsConfig']]: + """ + Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + """ return pulumi.get(self, "aws_kms_config") @property @pulumi.getter(name="azureKeyVaultConfig") def azure_key_vault_config(self) -> pulumi.Output[Optional['outputs.EncryptionAtRestAzureKeyVaultConfig']]: + """ + Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + """ return pulumi.get(self, "azure_key_vault_config") @property @pulumi.getter(name="googleCloudKmsConfig") def google_cloud_kms_config(self) -> pulumi.Output[Optional['outputs.EncryptionAtRestGoogleCloudKmsConfig']]: + """ + Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + """ return pulumi.get(self, "google_cloud_kms_config") @property @pulumi.getter(name="projectId") def project_id(self) -> pulumi.Output[str]: """ - The unique identifier for the project. + Unique 24-hexadecimal digit string that identifies your project. """ return pulumi.get(self, "project_id") diff --git a/sdk/python/pulumi_mongodbatlas/encryption_at_rest_private_endpoint.py b/sdk/python/pulumi_mongodbatlas/encryption_at_rest_private_endpoint.py new file mode 100644 index 00000000..417757b1 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/encryption_at_rest_private_endpoint.py @@ -0,0 +1,446 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['EncryptionAtRestPrivateEndpointArgs', 'EncryptionAtRestPrivateEndpoint'] + +@pulumi.input_type +class EncryptionAtRestPrivateEndpointArgs: + def __init__(__self__, *, + cloud_provider: pulumi.Input[str], + project_id: pulumi.Input[str], + region_name: pulumi.Input[str]): + """ + The set of arguments for constructing a EncryptionAtRestPrivateEndpoint resource. + :param pulumi.Input[str] cloud_provider: Label that identifies the cloud provider for the Encryption At Rest private endpoint. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. + :param pulumi.Input[str] region_name: Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + pulumi.set(__self__, "cloud_provider", cloud_provider) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "region_name", region_name) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> pulumi.Input[str]: + """ + Label that identifies the cloud provider for the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "cloud_provider") + + @cloud_provider.setter + def cloud_provider(self, value: pulumi.Input[str]): + pulumi.set(self, "cloud_provider", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> pulumi.Input[str]: + """ + Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + return pulumi.get(self, "region_name") + + @region_name.setter + def region_name(self, value: pulumi.Input[str]): + pulumi.set(self, "region_name", value) + + +@pulumi.input_type +class _EncryptionAtRestPrivateEndpointState: + def __init__(__self__, *, + cloud_provider: Optional[pulumi.Input[str]] = None, + error_message: Optional[pulumi.Input[str]] = None, + private_endpoint_connection_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering EncryptionAtRestPrivateEndpoint resources. + :param pulumi.Input[str] cloud_provider: Label that identifies the cloud provider for the Encryption At Rest private endpoint. + :param pulumi.Input[str] error_message: Error message for failures associated with the Encryption At Rest private endpoint. + :param pulumi.Input[str] private_endpoint_connection_name: Connection name of the Azure Private Endpoint. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. + :param pulumi.Input[str] region_name: Cloud provider region in which the Encryption At Rest private endpoint is located. + :param pulumi.Input[str] status: State of the Encryption At Rest private endpoint. + """ + if cloud_provider is not None: + pulumi.set(__self__, "cloud_provider", cloud_provider) + if error_message is not None: + pulumi.set(__self__, "error_message", error_message) + if private_endpoint_connection_name is not None: + pulumi.set(__self__, "private_endpoint_connection_name", private_endpoint_connection_name) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if region_name is not None: + pulumi.set(__self__, "region_name", region_name) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> Optional[pulumi.Input[str]]: + """ + Label that identifies the cloud provider for the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "cloud_provider") + + @cloud_provider.setter + def cloud_provider(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloud_provider", value) + + @property + @pulumi.getter(name="errorMessage") + def error_message(self) -> Optional[pulumi.Input[str]]: + """ + Error message for failures associated with the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "error_message") + + @error_message.setter + def error_message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "error_message", value) + + @property + @pulumi.getter(name="privateEndpointConnectionName") + def private_endpoint_connection_name(self) -> Optional[pulumi.Input[str]]: + """ + Connection name of the Azure Private Endpoint. + """ + return pulumi.get(self, "private_endpoint_connection_name") + + @private_endpoint_connection_name.setter + def private_endpoint_connection_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_endpoint_connection_name", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> Optional[pulumi.Input[str]]: + """ + Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + return pulumi.get(self, "region_name") + + @region_name.setter + def region_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region_name", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + State of the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + +class EncryptionAtRestPrivateEndpoint(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cloud_provider: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## # Resource: EncryptionAtRestPrivateEndpoint + + `EncryptionAtRestPrivateEndpoint` 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. + + > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + To 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). + + > **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled. + + > **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. + + ## Example Usage + + ### S + + > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + + ### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link + + Make sure to reference the complete example section for detailed steps and considerations. + + ```python + import pulumi + import json + import pulumi_azapi as azapi + import pulumi_mongodbatlas as mongodbatlas + + ear = mongodbatlas.EncryptionAtRest("ear", + project_id=atlas_project_id, + azure_key_vault_config={ + "require_private_networking": True, + "enabled": True, + "azure_environment": "AZURE", + "tenant_id": azure_tenant_id, + "subscription_id": azure_subscription_id, + "client_id": azure_client_id, + "secret": azure_client_secret, + "resource_group_name": azure_resource_group_name, + "key_vault_name": azure_key_vault_name, + "key_identifier": azure_key_identifier, + }) + # Creates private endpoint + endpoint = mongodbatlas.EncryptionAtRestPrivateEndpoint("endpoint", + project_id=ear.project_id, + cloud_provider="AZURE", + region_name=azure_region_name) + key_vault_resource_id = f"/subscriptions/{azure_subscription_id}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.KeyVault/vaults/{azure_key_vault_name}" + # Approves private endpoint connection from Azure Key Vault + approval = azapi.index.UpdateResource("approval", + type=Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01, + name=endpoint.private_endpoint_connection_name, + parent_id=key_vault_resource_id, + body=json.dumps({ + properties: { + privateLinkServiceConnectionState: { + description: Approved via Terraform, + status: Approved, + }, + }, + })) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] cloud_provider: Label that identifies the cloud provider for the Encryption At Rest private endpoint. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. + :param pulumi.Input[str] region_name: Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: EncryptionAtRestPrivateEndpointArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## # Resource: EncryptionAtRestPrivateEndpoint + + `EncryptionAtRestPrivateEndpoint` 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. + + > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + To 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). + + > **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault, the corresponding `EncryptionAtRest` resource has to be adjust by configuring `azure_key_vault_config.require_private_networking` to true. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled. + + > **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. + + ## Example Usage + + ### S + + > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + + ### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link + + Make sure to reference the complete example section for detailed steps and considerations. + + ```python + import pulumi + import json + import pulumi_azapi as azapi + import pulumi_mongodbatlas as mongodbatlas + + ear = mongodbatlas.EncryptionAtRest("ear", + project_id=atlas_project_id, + azure_key_vault_config={ + "require_private_networking": True, + "enabled": True, + "azure_environment": "AZURE", + "tenant_id": azure_tenant_id, + "subscription_id": azure_subscription_id, + "client_id": azure_client_id, + "secret": azure_client_secret, + "resource_group_name": azure_resource_group_name, + "key_vault_name": azure_key_vault_name, + "key_identifier": azure_key_identifier, + }) + # Creates private endpoint + endpoint = mongodbatlas.EncryptionAtRestPrivateEndpoint("endpoint", + project_id=ear.project_id, + cloud_provider="AZURE", + region_name=azure_region_name) + key_vault_resource_id = f"/subscriptions/{azure_subscription_id}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.KeyVault/vaults/{azure_key_vault_name}" + # Approves private endpoint connection from Azure Key Vault + approval = azapi.index.UpdateResource("approval", + type=Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01, + name=endpoint.private_endpoint_connection_name, + parent_id=key_vault_resource_id, + body=json.dumps({ + properties: { + privateLinkServiceConnectionState: { + description: Approved via Terraform, + status: Approved, + }, + }, + })) + ``` + + :param str resource_name: The name of the resource. + :param EncryptionAtRestPrivateEndpointArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(EncryptionAtRestPrivateEndpointArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cloud_provider: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = EncryptionAtRestPrivateEndpointArgs.__new__(EncryptionAtRestPrivateEndpointArgs) + + if cloud_provider is None and not opts.urn: + raise TypeError("Missing required property 'cloud_provider'") + __props__.__dict__["cloud_provider"] = cloud_provider + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + if region_name is None and not opts.urn: + raise TypeError("Missing required property 'region_name'") + __props__.__dict__["region_name"] = region_name + __props__.__dict__["error_message"] = None + __props__.__dict__["private_endpoint_connection_name"] = None + __props__.__dict__["status"] = None + super(EncryptionAtRestPrivateEndpoint, __self__).__init__( + 'mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cloud_provider: Optional[pulumi.Input[str]] = None, + error_message: Optional[pulumi.Input[str]] = None, + private_endpoint_connection_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None) -> 'EncryptionAtRestPrivateEndpoint': + """ + Get an existing EncryptionAtRestPrivateEndpoint resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] cloud_provider: Label that identifies the cloud provider for the Encryption At Rest private endpoint. + :param pulumi.Input[str] error_message: Error message for failures associated with the Encryption At Rest private endpoint. + :param pulumi.Input[str] private_endpoint_connection_name: Connection name of the Azure Private Endpoint. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. + :param pulumi.Input[str] region_name: Cloud provider region in which the Encryption At Rest private endpoint is located. + :param pulumi.Input[str] status: State of the Encryption At Rest private endpoint. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _EncryptionAtRestPrivateEndpointState.__new__(_EncryptionAtRestPrivateEndpointState) + + __props__.__dict__["cloud_provider"] = cloud_provider + __props__.__dict__["error_message"] = error_message + __props__.__dict__["private_endpoint_connection_name"] = private_endpoint_connection_name + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region_name"] = region_name + __props__.__dict__["status"] = status + return EncryptionAtRestPrivateEndpoint(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> pulumi.Output[str]: + """ + Label that identifies the cloud provider for the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "cloud_provider") + + @property + @pulumi.getter(name="errorMessage") + def error_message(self) -> pulumi.Output[str]: + """ + Error message for failures associated with the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "error_message") + + @property + @pulumi.getter(name="privateEndpointConnectionName") + def private_endpoint_connection_name(self) -> pulumi.Output[str]: + """ + Connection name of the Azure Private Endpoint. + """ + return pulumi.get(self, "private_endpoint_connection_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> pulumi.Output[str]: + """ + Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + return pulumi.get(self, "region_name") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + State of the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "status") + diff --git a/sdk/python/pulumi_mongodbatlas/get_advanced_cluster.py b/sdk/python/pulumi_mongodbatlas/get_advanced_cluster.py index 38048fbe..d96ac4f7 100644 --- a/sdk/python/pulumi_mongodbatlas/get_advanced_cluster.py +++ b/sdk/python/pulumi_mongodbatlas/get_advanced_cluster.py @@ -22,7 +22,7 @@ class GetAdvancedClusterResult: """ A collection of values returned by getAdvancedCluster. """ - def __init__(__self__, advanced_configurations=None, backup_enabled=None, bi_connector_configs=None, cluster_type=None, connection_strings=None, create_date=None, disk_size_gb=None, encryption_at_rest_provider=None, global_cluster_self_managed_sharding=None, id=None, labels=None, mongo_db_major_version=None, mongo_db_version=None, name=None, paused=None, pit_enabled=None, project_id=None, replication_specs=None, root_cert_type=None, state_name=None, tags=None, termination_protection_enabled=None, use_replication_spec_per_shard=None, version_release_system=None): + def __init__(__self__, advanced_configurations=None, backup_enabled=None, bi_connector_configs=None, cluster_type=None, connection_strings=None, create_date=None, disk_size_gb=None, encryption_at_rest_provider=None, global_cluster_self_managed_sharding=None, id=None, labels=None, mongo_db_major_version=None, mongo_db_version=None, name=None, paused=None, pit_enabled=None, project_id=None, replica_set_scaling_strategy=None, replication_specs=None, root_cert_type=None, state_name=None, tags=None, termination_protection_enabled=None, use_replication_spec_per_shard=None, version_release_system=None): if advanced_configurations and not isinstance(advanced_configurations, list): raise TypeError("Expected argument 'advanced_configurations' to be a list") pulumi.set(__self__, "advanced_configurations", advanced_configurations) @@ -74,6 +74,9 @@ def __init__(__self__, advanced_configurations=None, backup_enabled=None, bi_con if project_id and not isinstance(project_id, str): raise TypeError("Expected argument 'project_id' to be a str") pulumi.set(__self__, "project_id", project_id) + if replica_set_scaling_strategy and not isinstance(replica_set_scaling_strategy, str): + raise TypeError("Expected argument 'replica_set_scaling_strategy' to be a str") + pulumi.set(__self__, "replica_set_scaling_strategy", replica_set_scaling_strategy) if replication_specs and not isinstance(replication_specs, list): raise TypeError("Expected argument 'replication_specs' to be a list") pulumi.set(__self__, "replication_specs", replication_specs) @@ -173,7 +176,7 @@ def id(self) -> str: @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Sequence['outputs.GetAdvancedClusterLabelResult']: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED.)** Use `tags` instead. @@ -222,6 +225,14 @@ def pit_enabled(self) -> bool: def project_id(self) -> str: return pulumi.get(self, "project_id") + @property + @pulumi.getter(name="replicaSetScalingStrategy") + def replica_set_scaling_strategy(self) -> str: + """ + (Optional) Replica set scaling mode for your cluster. + """ + return pulumi.get(self, "replica_set_scaling_strategy") + @property @pulumi.getter(name="replicationSpecs") def replication_specs(self) -> Sequence['outputs.GetAdvancedClusterReplicationSpecResult']: @@ -299,6 +310,7 @@ def __await__(self): paused=self.paused, pit_enabled=self.pit_enabled, project_id=self.project_id, + replica_set_scaling_strategy=self.replica_set_scaling_strategy, replication_specs=self.replication_specs, root_cert_type=self.root_cert_type, state_name=self.state_name, @@ -423,6 +435,7 @@ def get_advanced_cluster(name: Optional[str] = None, paused=pulumi.get(__ret__, 'paused'), pit_enabled=pulumi.get(__ret__, 'pit_enabled'), project_id=pulumi.get(__ret__, 'project_id'), + replica_set_scaling_strategy=pulumi.get(__ret__, 'replica_set_scaling_strategy'), replication_specs=pulumi.get(__ret__, 'replication_specs'), root_cert_type=pulumi.get(__ret__, 'root_cert_type'), state_name=pulumi.get(__ret__, 'state_name'), diff --git a/sdk/python/pulumi_mongodbatlas/get_cluster.py b/sdk/python/pulumi_mongodbatlas/get_cluster.py index 3577c040..39e04c7b 100644 --- a/sdk/python/pulumi_mongodbatlas/get_cluster.py +++ b/sdk/python/pulumi_mongodbatlas/get_cluster.py @@ -259,7 +259,7 @@ def id(self) -> str: @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Sequence['outputs.GetClusterLabelResult']: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. diff --git a/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest.py b/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest.py new file mode 100644 index 00000000..807fceb1 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest.py @@ -0,0 +1,324 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetEncryptionAtRestResult', + 'AwaitableGetEncryptionAtRestResult', + 'get_encryption_at_rest', + 'get_encryption_at_rest_output', +] + +@pulumi.output_type +class GetEncryptionAtRestResult: + """ + A collection of values returned by getEncryptionAtRest. + """ + def __init__(__self__, aws_kms_config=None, azure_key_vault_config=None, google_cloud_kms_config=None, id=None, project_id=None): + if aws_kms_config and not isinstance(aws_kms_config, dict): + raise TypeError("Expected argument 'aws_kms_config' to be a dict") + pulumi.set(__self__, "aws_kms_config", aws_kms_config) + if azure_key_vault_config and not isinstance(azure_key_vault_config, dict): + raise TypeError("Expected argument 'azure_key_vault_config' to be a dict") + pulumi.set(__self__, "azure_key_vault_config", azure_key_vault_config) + if google_cloud_kms_config and not isinstance(google_cloud_kms_config, dict): + raise TypeError("Expected argument 'google_cloud_kms_config' to be a dict") + pulumi.set(__self__, "google_cloud_kms_config", google_cloud_kms_config) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + + @property + @pulumi.getter(name="awsKmsConfig") + def aws_kms_config(self) -> 'outputs.GetEncryptionAtRestAwsKmsConfigResult': + """ + Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project. + """ + return pulumi.get(self, "aws_kms_config") + + @property + @pulumi.getter(name="azureKeyVaultConfig") + def azure_key_vault_config(self) -> 'outputs.GetEncryptionAtRestAzureKeyVaultConfigResult': + """ + Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV). + """ + return pulumi.get(self, "azure_key_vault_config") + + @property + @pulumi.getter(name="googleCloudKmsConfig") + def google_cloud_kms_config(self) -> 'outputs.GetEncryptionAtRestGoogleCloudKmsConfigResult': + """ + Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS). + """ + return pulumi.get(self, "google_cloud_kms_config") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + +class AwaitableGetEncryptionAtRestResult(GetEncryptionAtRestResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetEncryptionAtRestResult( + aws_kms_config=self.aws_kms_config, + azure_key_vault_config=self.azure_key_vault_config, + google_cloud_kms_config=self.google_cloud_kms_config, + id=self.id, + project_id=self.project_id) + + +def get_encryption_at_rest(project_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEncryptionAtRestResult: + """ + ## # Data Source: EncryptionAtRest + + `EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + + [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + + > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + + > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + + > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + + ## Example Usage + + ### S + + ### Configuring encryption at rest using customer key management in AWS + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + setup_only = mongodbatlas.CloudProviderAccessSetup("setup_only", + project_id=atlas_project_id, + provider_name="AWS") + auth_role = mongodbatlas.CloudProviderAccessAuthorization("auth_role", + project_id=atlas_project_id, + role_id=setup_only.role_id, + aws={ + "iam_assumed_role_arn": test_role["arn"], + }) + test_encryption_at_rest = mongodbatlas.EncryptionAtRest("test", + project_id=atlas_project_id, + aws_kms_config={ + "enabled": True, + "customer_master_key_id": kms_key["id"], + "region": atlas_region, + "role_id": auth_role.role_id, + }) + cluster = mongodbatlas.AdvancedCluster("cluster", + project_id=test_encryption_at_rest.project_id, + name="MyCluster", + cluster_type="REPLICASET", + backup_enabled=True, + encryption_at_rest_provider="AWS", + replication_specs=[{ + "region_configs": [{ + "priority": 7, + "provider_name": "AWS", + "region_name": "US_EAST_1", + "electable_specs": { + "instance_size": "M10", + "node_count": 3, + }, + }], + }]) + test = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id) + pulumi.export("isAwsKmsEncryptionAtRestValid", test.aws_kms_config.valid) + ``` + + ### Configuring encryption at rest using customer key management in Azure + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + test_encryption_at_rest = mongodbatlas.EncryptionAtRest("test", + project_id=atlas_project_id, + azure_key_vault_config={ + "enabled": True, + "azure_environment": "AZURE", + "tenant_id": azure_tenant_id, + "subscription_id": azure_subscription_id, + "client_id": azure_client_id, + "secret": azure_client_secret, + "resource_group_name": azure_resource_group_name, + "key_vault_name": azure_key_vault_name, + "key_identifier": azure_key_identifier, + }) + test = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id) + pulumi.export("isAzureEncryptionAtRestValid", test.azure_key_vault_config.valid) + ``` + + > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `EncryptionAtRestPrivateEndpoint` resource for details. + + ### Configuring encryption at rest using customer key management in GCP + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + test_encryption_at_rest = mongodbatlas.EncryptionAtRest("test", + project_id=atlas_project_id, + google_cloud_kms_config={ + "enabled": True, + "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\\"}", + "key_version_resource_id": "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1", + }) + test = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id) + pulumi.export("isGcpEncryptionAtRestValid", test.google_cloud_kms_config.valid) + ``` + + + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + __args__ = dict() + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest', __args__, opts=opts, typ=GetEncryptionAtRestResult).value + + return AwaitableGetEncryptionAtRestResult( + aws_kms_config=pulumi.get(__ret__, 'aws_kms_config'), + azure_key_vault_config=pulumi.get(__ret__, 'azure_key_vault_config'), + google_cloud_kms_config=pulumi.get(__ret__, 'google_cloud_kms_config'), + id=pulumi.get(__ret__, 'id'), + project_id=pulumi.get(__ret__, 'project_id')) + + +@_utilities.lift_output_func(get_encryption_at_rest) +def get_encryption_at_rest_output(project_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEncryptionAtRestResult]: + """ + ## # Data Source: EncryptionAtRest + + `EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers: + + [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms) + [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms) + [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms) + + > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes. + + > **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Encryption-at-Rest-using-Customer-Key-Management + + > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation. + + ## Example Usage + + ### S + + ### Configuring encryption at rest using customer key management in AWS + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + setup_only = mongodbatlas.CloudProviderAccessSetup("setup_only", + project_id=atlas_project_id, + provider_name="AWS") + auth_role = mongodbatlas.CloudProviderAccessAuthorization("auth_role", + project_id=atlas_project_id, + role_id=setup_only.role_id, + aws={ + "iam_assumed_role_arn": test_role["arn"], + }) + test_encryption_at_rest = mongodbatlas.EncryptionAtRest("test", + project_id=atlas_project_id, + aws_kms_config={ + "enabled": True, + "customer_master_key_id": kms_key["id"], + "region": atlas_region, + "role_id": auth_role.role_id, + }) + cluster = mongodbatlas.AdvancedCluster("cluster", + project_id=test_encryption_at_rest.project_id, + name="MyCluster", + cluster_type="REPLICASET", + backup_enabled=True, + encryption_at_rest_provider="AWS", + replication_specs=[{ + "region_configs": [{ + "priority": 7, + "provider_name": "AWS", + "region_name": "US_EAST_1", + "electable_specs": { + "instance_size": "M10", + "node_count": 3, + }, + }], + }]) + test = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id) + pulumi.export("isAwsKmsEncryptionAtRestValid", test.aws_kms_config.valid) + ``` + + ### Configuring encryption at rest using customer key management in Azure + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + test_encryption_at_rest = mongodbatlas.EncryptionAtRest("test", + project_id=atlas_project_id, + azure_key_vault_config={ + "enabled": True, + "azure_environment": "AZURE", + "tenant_id": azure_tenant_id, + "subscription_id": azure_subscription_id, + "client_id": azure_client_id, + "secret": azure_client_secret, + "resource_group_name": azure_resource_group_name, + "key_vault_name": azure_key_vault_name, + "key_identifier": azure_key_identifier, + }) + test = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id) + pulumi.export("isAzureEncryptionAtRestValid", test.azure_key_vault_config.valid) + ``` + + > **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Azure Key Vault using Azure Private Link, ensuring that all traffic between Atlas and Key Vault takes place over Azure’s private network interfaces. Please review `EncryptionAtRestPrivateEndpoint` resource for details. + + ### Configuring encryption at rest using customer key management in GCP + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + test_encryption_at_rest = mongodbatlas.EncryptionAtRest("test", + project_id=atlas_project_id, + google_cloud_kms_config={ + "enabled": True, + "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\\"}", + "key_version_resource_id": "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1", + }) + test = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id) + pulumi.export("isGcpEncryptionAtRestValid", test.google_cloud_kms_config.valid) + ``` + + + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + ... diff --git a/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest_private_endpoint.py b/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest_private_endpoint.py new file mode 100644 index 00000000..2bc9b265 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest_private_endpoint.py @@ -0,0 +1,203 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetEncryptionAtRestPrivateEndpointResult', + 'AwaitableGetEncryptionAtRestPrivateEndpointResult', + 'get_encryption_at_rest_private_endpoint', + 'get_encryption_at_rest_private_endpoint_output', +] + +@pulumi.output_type +class GetEncryptionAtRestPrivateEndpointResult: + """ + A collection of values returned by getEncryptionAtRestPrivateEndpoint. + """ + def __init__(__self__, cloud_provider=None, error_message=None, id=None, private_endpoint_connection_name=None, project_id=None, region_name=None, status=None): + if cloud_provider and not isinstance(cloud_provider, str): + raise TypeError("Expected argument 'cloud_provider' to be a str") + pulumi.set(__self__, "cloud_provider", cloud_provider) + if error_message and not isinstance(error_message, str): + raise TypeError("Expected argument 'error_message' to be a str") + pulumi.set(__self__, "error_message", error_message) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if private_endpoint_connection_name and not isinstance(private_endpoint_connection_name, str): + raise TypeError("Expected argument 'private_endpoint_connection_name' to be a str") + pulumi.set(__self__, "private_endpoint_connection_name", private_endpoint_connection_name) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if region_name and not isinstance(region_name, str): + raise TypeError("Expected argument 'region_name' to be a str") + pulumi.set(__self__, "region_name", region_name) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> str: + """ + Label that identifies the cloud provider of the private endpoint. + """ + return pulumi.get(self, "cloud_provider") + + @property + @pulumi.getter(name="errorMessage") + def error_message(self) -> str: + """ + Error message for failures associated with the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "error_message") + + @property + @pulumi.getter + def id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="privateEndpointConnectionName") + def private_endpoint_connection_name(self) -> str: + """ + Connection name of the Azure Private Endpoint. + """ + return pulumi.get(self, "private_endpoint_connection_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> str: + """ + Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + return pulumi.get(self, "region_name") + + @property + @pulumi.getter + def status(self) -> str: + """ + State of the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "status") + + +class AwaitableGetEncryptionAtRestPrivateEndpointResult(GetEncryptionAtRestPrivateEndpointResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetEncryptionAtRestPrivateEndpointResult( + cloud_provider=self.cloud_provider, + error_message=self.error_message, + id=self.id, + private_endpoint_connection_name=self.private_endpoint_connection_name, + project_id=self.project_id, + region_name=self.region_name, + status=self.status) + + +def get_encryption_at_rest_private_endpoint(cloud_provider: Optional[str] = None, + id: Optional[str] = None, + project_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEncryptionAtRestPrivateEndpointResult: + """ + ## # Data Source: EncryptionAtRestPrivateEndpoint + + `EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. + + > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + To 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). + + ## Example Usage + + ### S + + > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + single = mongodbatlas.get_encryption_at_rest_private_endpoint(project_id=atlas_project_id, + cloud_provider="AZURE", + id=endpoint["id"]) + pulumi.export("endpointConnectionName", single.private_endpoint_connection_name) + ``` + + + :param str cloud_provider: Label that identifies the cloud provider of the private endpoint. + :param str id: Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + __args__ = dict() + __args__['cloudProvider'] = cloud_provider + __args__['id'] = id + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint', __args__, opts=opts, typ=GetEncryptionAtRestPrivateEndpointResult).value + + return AwaitableGetEncryptionAtRestPrivateEndpointResult( + cloud_provider=pulumi.get(__ret__, 'cloud_provider'), + error_message=pulumi.get(__ret__, 'error_message'), + id=pulumi.get(__ret__, 'id'), + private_endpoint_connection_name=pulumi.get(__ret__, 'private_endpoint_connection_name'), + project_id=pulumi.get(__ret__, 'project_id'), + region_name=pulumi.get(__ret__, 'region_name'), + status=pulumi.get(__ret__, 'status')) + + +@_utilities.lift_output_func(get_encryption_at_rest_private_endpoint) +def get_encryption_at_rest_private_endpoint_output(cloud_provider: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEncryptionAtRestPrivateEndpointResult]: + """ + ## # Data Source: EncryptionAtRestPrivateEndpoint + + `EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys. + + > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + To 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). + + ## Example Usage + + ### S + + > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + single = mongodbatlas.get_encryption_at_rest_private_endpoint(project_id=atlas_project_id, + cloud_provider="AZURE", + id=endpoint["id"]) + pulumi.export("endpointConnectionName", single.private_endpoint_connection_name) + ``` + + + :param str cloud_provider: Label that identifies the cloud provider of the private endpoint. + :param str id: Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + ... diff --git a/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest_private_endpoints.py b/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest_private_endpoints.py new file mode 100644 index 00000000..cf38cf38 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/get_encryption_at_rest_private_endpoints.py @@ -0,0 +1,158 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetEncryptionAtRestPrivateEndpointsResult', + 'AwaitableGetEncryptionAtRestPrivateEndpointsResult', + 'get_encryption_at_rest_private_endpoints', + 'get_encryption_at_rest_private_endpoints_output', +] + +@pulumi.output_type +class GetEncryptionAtRestPrivateEndpointsResult: + """ + A collection of values returned by getEncryptionAtRestPrivateEndpoints. + """ + def __init__(__self__, cloud_provider=None, id=None, project_id=None, results=None): + if cloud_provider and not isinstance(cloud_provider, str): + raise TypeError("Expected argument 'cloud_provider' to be a str") + pulumi.set(__self__, "cloud_provider", cloud_provider) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if results and not isinstance(results, list): + raise TypeError("Expected argument 'results' to be a list") + pulumi.set(__self__, "results", results) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> str: + """ + Human-readable label that identifies the cloud provider for the private endpoints to return. + """ + return pulumi.get(self, "cloud_provider") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def results(self) -> Sequence['outputs.GetEncryptionAtRestPrivateEndpointsResultResult']: + """ + List of returned documents that MongoDB Cloud providers when completing this request. + """ + return pulumi.get(self, "results") + + +class AwaitableGetEncryptionAtRestPrivateEndpointsResult(GetEncryptionAtRestPrivateEndpointsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetEncryptionAtRestPrivateEndpointsResult( + cloud_provider=self.cloud_provider, + id=self.id, + project_id=self.project_id, + results=self.results) + + +def get_encryption_at_rest_private_endpoints(cloud_provider: Optional[str] = None, + project_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEncryptionAtRestPrivateEndpointsResult: + """ + ## # Data Source: get_encryption_at_rest_private_endpoints + + `get_encryption_at_rest_private_endpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. + + > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + To 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). + + ## Example Usage + + ### S + + > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + plural = mongodbatlas.get_encryption_at_rest_private_endpoints(project_id=atlas_project_id, + cloud_provider="AZURE") + pulumi.export("numberOfEndpoints", len(plural.results)) + ``` + + + :param str cloud_provider: Human-readable label that identifies the cloud provider for the private endpoints to return. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + __args__ = dict() + __args__['cloudProvider'] = cloud_provider + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints', __args__, opts=opts, typ=GetEncryptionAtRestPrivateEndpointsResult).value + + return AwaitableGetEncryptionAtRestPrivateEndpointsResult( + cloud_provider=pulumi.get(__ret__, 'cloud_provider'), + id=pulumi.get(__ret__, 'id'), + project_id=pulumi.get(__ret__, 'project_id'), + results=pulumi.get(__ret__, 'results')) + + +@_utilities.lift_output_func(get_encryption_at_rest_private_endpoints) +def get_encryption_at_rest_private_endpoints_output(cloud_provider: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEncryptionAtRestPrivateEndpointsResult]: + """ + ## # Data Source: get_encryption_at_rest_private_endpoints + + `get_encryption_at_rest_private_endpoints` describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys. + + > **IMPORTANT** The Encryption at Rest using Azure Key Vault over Private Endpoints feature is available by request. To request this functionality for your Atlas deployments, contact your Account Manager. + To 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). + + ## Example Usage + + ### S + + > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time. + + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + plural = mongodbatlas.get_encryption_at_rest_private_endpoints(project_id=atlas_project_id, + cloud_provider="AZURE") + pulumi.export("numberOfEndpoints", len(plural.results)) + ``` + + + :param str cloud_provider: Human-readable label that identifies the cloud provider for the private endpoints to return. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + ... diff --git a/sdk/python/pulumi_mongodbatlas/get_project.py b/sdk/python/pulumi_mongodbatlas/get_project.py index 21553d76..9625f5e3 100644 --- a/sdk/python/pulumi_mongodbatlas/get_project.py +++ b/sdk/python/pulumi_mongodbatlas/get_project.py @@ -98,9 +98,10 @@ def id(self) -> str: @property @pulumi.getter(name="ipAddresses") + @_utilities.deprecated("""This parameter is deprecated and will be removed by 1.21.0. Please transition to get_project_ip_addresses data source.""") def ip_addresses(self) -> 'outputs.GetProjectIpAddressesResult': """ - IP addresses in a project categorized by services. See IP Addresses. + IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. """ return pulumi.get(self, "ip_addresses") diff --git a/sdk/python/pulumi_mongodbatlas/get_project_ip_addresses.py b/sdk/python/pulumi_mongodbatlas/get_project_ip_addresses.py new file mode 100644 index 00000000..2f0a799f --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/get_project_ip_addresses.py @@ -0,0 +1,126 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetProjectIpAddressesResult', + 'AwaitableGetProjectIpAddressesResult', + 'get_project_ip_addresses', + 'get_project_ip_addresses_output', +] + +@pulumi.output_type +class GetProjectIpAddressesResult: + """ + A collection of values returned by getProjectIpAddresses. + """ + def __init__(__self__, id=None, project_id=None, services=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if services and not isinstance(services, dict): + raise TypeError("Expected argument 'services' to be a dict") + pulumi.set(__self__, "services", services) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def services(self) -> 'outputs.GetProjectIpAddressesServicesResult': + """ + List of IP addresses in a project categorized by services. + """ + return pulumi.get(self, "services") + + +class AwaitableGetProjectIpAddressesResult(GetProjectIpAddressesResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetProjectIpAddressesResult( + id=self.id, + project_id=self.project_id, + services=self.services) + + +def get_project_ip_addresses(project_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectIpAddressesResult: + """ + ## # Data Source: get_project_ip_addresses + + `get_project_ip_addresses` returns the IP addresses in a project categorized by services. + + ## Example Usage + + ### S + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + test = mongodbatlas.get_project_ip_addresses(project_id=project_id) + pulumi.export("projectServices", test.services) + ``` + + + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + __args__ = dict() + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses', __args__, opts=opts, typ=GetProjectIpAddressesResult).value + + return AwaitableGetProjectIpAddressesResult( + id=pulumi.get(__ret__, 'id'), + project_id=pulumi.get(__ret__, 'project_id'), + services=pulumi.get(__ret__, 'services')) + + +@_utilities.lift_output_func(get_project_ip_addresses) +def get_project_ip_addresses_output(project_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetProjectIpAddressesResult]: + """ + ## # Data Source: get_project_ip_addresses + + `get_project_ip_addresses` returns the IP addresses in a project categorized by services. + + ## Example Usage + + ### S + ```python + import pulumi + import pulumi_mongodbatlas as mongodbatlas + + test = mongodbatlas.get_project_ip_addresses(project_id=project_id) + pulumi.export("projectServices", test.services) + ``` + + + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + """ + ... diff --git a/sdk/python/pulumi_mongodbatlas/get_stream_processor.py b/sdk/python/pulumi_mongodbatlas/get_stream_processor.py new file mode 100644 index 00000000..c366d6f7 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/get_stream_processor.py @@ -0,0 +1,168 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetStreamProcessorResult', + 'AwaitableGetStreamProcessorResult', + 'get_stream_processor', + 'get_stream_processor_output', +] + +@pulumi.output_type +class GetStreamProcessorResult: + """ + A collection of values returned by getStreamProcessor. + """ + def __init__(__self__, id=None, instance_name=None, options=None, pipeline=None, processor_name=None, project_id=None, state=None, stats=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if instance_name and not isinstance(instance_name, str): + raise TypeError("Expected argument 'instance_name' to be a str") + pulumi.set(__self__, "instance_name", instance_name) + if options and not isinstance(options, dict): + raise TypeError("Expected argument 'options' to be a dict") + pulumi.set(__self__, "options", options) + if pipeline and not isinstance(pipeline, str): + raise TypeError("Expected argument 'pipeline' to be a str") + pulumi.set(__self__, "pipeline", pipeline) + if processor_name and not isinstance(processor_name, str): + raise TypeError("Expected argument 'processor_name' to be a str") + pulumi.set(__self__, "processor_name", processor_name) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if state and not isinstance(state, str): + raise TypeError("Expected argument 'state' to be a str") + pulumi.set(__self__, "state", state) + if stats and not isinstance(stats, str): + raise TypeError("Expected argument 'stats' to be a str") + pulumi.set(__self__, "stats", stats) + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> str: + """ + Human-readable label that identifies the stream instance. + """ + return pulumi.get(self, "instance_name") + + @property + @pulumi.getter + def options(self) -> 'outputs.GetStreamProcessorOptionsResult': + return pulumi.get(self, "options") + + @property + @pulumi.getter + def pipeline(self) -> str: + return pulumi.get(self, "pipeline") + + @property + @pulumi.getter(name="processorName") + def processor_name(self) -> str: + """ + Human-readable label that identifies the stream processor. + """ + return pulumi.get(self, "processor_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def state(self) -> str: + return pulumi.get(self, "state") + + @property + @pulumi.getter + def stats(self) -> str: + return pulumi.get(self, "stats") + + +class AwaitableGetStreamProcessorResult(GetStreamProcessorResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetStreamProcessorResult( + id=self.id, + instance_name=self.instance_name, + options=self.options, + pipeline=self.pipeline, + processor_name=self.processor_name, + project_id=self.project_id, + state=self.state, + stats=self.stats) + + +def get_stream_processor(instance_name: Optional[str] = None, + processor_name: Optional[str] = None, + project_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStreamProcessorResult: + """ + ## # Data Source: StreamProcessor + + `StreamProcessor` describes a stream processor. + + ## Example Usage + + + :param str instance_name: Human-readable label that identifies the stream instance. + :param str processor_name: Human-readable label that identifies the stream processor. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + __args__ = dict() + __args__['instanceName'] = instance_name + __args__['processorName'] = processor_name + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('mongodbatlas:index/getStreamProcessor:getStreamProcessor', __args__, opts=opts, typ=GetStreamProcessorResult).value + + return AwaitableGetStreamProcessorResult( + id=pulumi.get(__ret__, 'id'), + instance_name=pulumi.get(__ret__, 'instance_name'), + options=pulumi.get(__ret__, 'options'), + pipeline=pulumi.get(__ret__, 'pipeline'), + processor_name=pulumi.get(__ret__, 'processor_name'), + project_id=pulumi.get(__ret__, 'project_id'), + state=pulumi.get(__ret__, 'state'), + stats=pulumi.get(__ret__, 'stats')) + + +@_utilities.lift_output_func(get_stream_processor) +def get_stream_processor_output(instance_name: Optional[pulumi.Input[str]] = None, + processor_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStreamProcessorResult]: + """ + ## # Data Source: StreamProcessor + + `StreamProcessor` describes a stream processor. + + ## Example Usage + + + :param str instance_name: Human-readable label that identifies the stream instance. + :param str processor_name: Human-readable label that identifies the stream processor. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + ... diff --git a/sdk/python/pulumi_mongodbatlas/get_stream_processors.py b/sdk/python/pulumi_mongodbatlas/get_stream_processors.py new file mode 100644 index 00000000..6f5ab492 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/get_stream_processors.py @@ -0,0 +1,123 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetStreamProcessorsResult', + 'AwaitableGetStreamProcessorsResult', + 'get_stream_processors', + 'get_stream_processors_output', +] + +@pulumi.output_type +class GetStreamProcessorsResult: + """ + A collection of values returned by getStreamProcessors. + """ + def __init__(__self__, id=None, instance_name=None, project_id=None, results=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if instance_name and not isinstance(instance_name, str): + raise TypeError("Expected argument 'instance_name' to be a str") + pulumi.set(__self__, "instance_name", instance_name) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if results and not isinstance(results, list): + raise TypeError("Expected argument 'results' to be a list") + pulumi.set(__self__, "results", results) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> str: + """ + Human-readable label that identifies the stream instance. + """ + return pulumi.get(self, "instance_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def results(self) -> Sequence['outputs.GetStreamProcessorsResultResult']: + return pulumi.get(self, "results") + + +class AwaitableGetStreamProcessorsResult(GetStreamProcessorsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetStreamProcessorsResult( + id=self.id, + instance_name=self.instance_name, + project_id=self.project_id, + results=self.results) + + +def get_stream_processors(instance_name: Optional[str] = None, + project_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStreamProcessorsResult: + """ + ## # Data Source: get_stream_processors + + `get_stream_processors` returns all stream processors in a stream instance. + + ## Example Usage + + + :param str instance_name: Human-readable label that identifies the stream instance. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + __args__ = dict() + __args__['instanceName'] = instance_name + __args__['projectId'] = project_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('mongodbatlas:index/getStreamProcessors:getStreamProcessors', __args__, opts=opts, typ=GetStreamProcessorsResult).value + + return AwaitableGetStreamProcessorsResult( + id=pulumi.get(__ret__, 'id'), + instance_name=pulumi.get(__ret__, 'instance_name'), + project_id=pulumi.get(__ret__, 'project_id'), + results=pulumi.get(__ret__, 'results')) + + +@_utilities.lift_output_func(get_stream_processors) +def get_stream_processors_output(instance_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStreamProcessorsResult]: + """ + ## # Data Source: get_stream_processors + + `get_stream_processors` returns all stream processors in a stream instance. + + ## Example Usage + + + :param str instance_name: Human-readable label that identifies the stream instance. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + ... diff --git a/sdk/python/pulumi_mongodbatlas/online_archive.py b/sdk/python/pulumi_mongodbatlas/online_archive.py index 07000117..07256a5c 100644 --- a/sdk/python/pulumi_mongodbatlas/online_archive.py +++ b/sdk/python/pulumi_mongodbatlas/online_archive.py @@ -41,6 +41,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OnlineArchivePartitionFieldArgs']]] partition_fields: 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 `date_field`) 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://docs.mongodb.com/datalake/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. :param pulumi.Input[bool] paused: 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. :param pulumi.Input['OnlineArchiveScheduleArgs'] schedule: Regular frequency and duration when archiving process occurs. See schedule. + :param pulumi.Input[bool] sync_creation: 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 `false`. """ pulumi.set(__self__, "cluster_name", cluster_name) pulumi.set(__self__, "coll_name", coll_name) @@ -197,6 +198,9 @@ def schedule(self, value: Optional[pulumi.Input['OnlineArchiveScheduleArgs']]): @property @pulumi.getter(name="syncCreation") def sync_creation(self) -> Optional[pulumi.Input[bool]]: + """ + 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 `false`. + """ return pulumi.get(self, "sync_creation") @sync_creation.setter @@ -236,6 +240,7 @@ def __init__(__self__, *, :param pulumi.Input[str] project_id: The unique ID for the project :param pulumi.Input['OnlineArchiveScheduleArgs'] schedule: Regular frequency and duration when archiving process occurs. See schedule. :param pulumi.Input[str] state: Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted + :param pulumi.Input[bool] sync_creation: 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 `false`. """ if archive_id is not None: pulumi.set(__self__, "archive_id", archive_id) @@ -425,6 +430,9 @@ def state(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="syncCreation") def sync_creation(self) -> Optional[pulumi.Input[bool]]: + """ + 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 `false`. + """ return pulumi.get(self, "sync_creation") @sync_creation.setter @@ -570,6 +578,7 @@ def __init__(__self__, :param pulumi.Input[bool] paused: 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. :param pulumi.Input[str] project_id: The unique ID for the project :param pulumi.Input[Union['OnlineArchiveScheduleArgs', 'OnlineArchiveScheduleArgsDict']] schedule: Regular frequency and duration when archiving process occurs. See schedule. + :param pulumi.Input[bool] sync_creation: 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 `false`. """ ... @overload @@ -788,6 +797,7 @@ def get(resource_name: str, :param pulumi.Input[str] project_id: The unique ID for the project :param pulumi.Input[Union['OnlineArchiveScheduleArgs', 'OnlineArchiveScheduleArgsDict']] schedule: Regular frequency and duration when archiving process occurs. See schedule. :param pulumi.Input[str] state: Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted + :param pulumi.Input[bool] sync_creation: 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 `false`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -916,5 +926,8 @@ def state(self) -> pulumi.Output[str]: @property @pulumi.getter(name="syncCreation") def sync_creation(self) -> pulumi.Output[Optional[bool]]: + """ + 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 `false`. + """ return pulumi.get(self, "sync_creation") diff --git a/sdk/python/pulumi_mongodbatlas/outputs.py b/sdk/python/pulumi_mongodbatlas/outputs.py index 75105ba2..b8986ab3 100644 --- a/sdk/python/pulumi_mongodbatlas/outputs.py +++ b/sdk/python/pulumi_mongodbatlas/outputs.py @@ -123,6 +123,8 @@ 'StreamConnectionSecurity', 'StreamInstanceDataProcessRegion', 'StreamInstanceStreamConfig', + 'StreamProcessorOptions', + 'StreamProcessorOptionsDlq', 'X509AuthenticationDatabaseUserCertificate', 'Get509AuthenticationDatabaseUserCertificateResult', 'GetAccessListApiKeysResultResult', @@ -254,6 +256,10 @@ 'GetDatabaseUsersResultLabelResult', 'GetDatabaseUsersResultRoleResult', 'GetDatabaseUsersResultScopeResult', + 'GetEncryptionAtRestAwsKmsConfigResult', + 'GetEncryptionAtRestAzureKeyVaultConfigResult', + 'GetEncryptionAtRestGoogleCloudKmsConfigResult', + 'GetEncryptionAtRestPrivateEndpointsResultResult', 'GetEventTriggerEventProcessorResult', 'GetEventTriggerEventProcessorAwsEventbridgeResult', 'GetEventTriggersResultResult', @@ -366,6 +372,11 @@ 'GetStreamInstancesResultResult', 'GetStreamInstancesResultDataProcessRegionResult', 'GetStreamInstancesResultStreamConfigResult', + 'GetStreamProcessorOptionsResult', + 'GetStreamProcessorOptionsDlqResult', + 'GetStreamProcessorsResultResult', + 'GetStreamProcessorsResultOptionsResult', + 'GetStreamProcessorsResultOptionsDlqResult', 'GetThirdPartyIntegrationsResultResult', 'GetX509AuthenticationDatabaseUserCertificateResult', ] @@ -375,7 +386,9 @@ class AdvancedClusterAdvancedConfiguration(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "defaultReadConcern": + if key == "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": + suggest = "change_stream_options_pre_and_post_images_expire_after_seconds" + elif key == "defaultReadConcern": suggest = "default_read_concern" elif key == "defaultWriteConcern": suggest = "default_write_concern" @@ -410,6 +423,7 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: Optional[int] = None, default_read_concern: Optional[str] = None, default_write_concern: Optional[str] = None, fail_index_key_too_long: Optional[bool] = None, @@ -422,6 +436,7 @@ def __init__(__self__, *, sample_size_bi_connector: Optional[int] = None, transaction_lifetime_limit_seconds: Optional[int] = None): """ + :param int change_stream_options_pre_and_post_images_expire_after_seconds: 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. :param str default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. :param str default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param bool fail_index_key_too_long: 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. **(DEPRECATED)** This parameter has been removed as of [MongoDB 4.4](https://www.mongodb.com/docs/manual/reference/parameters/#mongodb-parameter-param.failIndexKeyTooLong). @@ -439,6 +454,8 @@ def __init__(__self__, *, :param int sample_size_bi_connector: 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. :param int transaction_lifetime_limit_seconds: Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + if change_stream_options_pre_and_post_images_expire_after_seconds is not None: + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) if default_read_concern is not None: pulumi.set(__self__, "default_read_concern", default_read_concern) if default_write_concern is not None: @@ -462,6 +479,14 @@ def __init__(__self__, *, if transaction_lifetime_limit_seconds is not None: pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> Optional[int]: + """ + 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. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -3822,7 +3847,9 @@ class ClusterAdvancedConfiguration(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "defaultReadConcern": + if key == "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": + suggest = "change_stream_options_pre_and_post_images_expire_after_seconds" + elif key == "defaultReadConcern": suggest = "default_read_concern" elif key == "defaultWriteConcern": suggest = "default_write_concern" @@ -3857,6 +3884,7 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: Optional[int] = None, default_read_concern: Optional[str] = None, default_write_concern: Optional[str] = None, fail_index_key_too_long: Optional[bool] = None, @@ -3869,6 +3897,7 @@ def __init__(__self__, *, sample_size_bi_connector: Optional[int] = None, transaction_lifetime_limit_seconds: Optional[int] = None): """ + :param int change_stream_options_pre_and_post_images_expire_after_seconds: 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. :param str default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). :param str default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param bool fail_index_key_too_long: 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. @@ -3886,6 +3915,8 @@ def __init__(__self__, *, :param int sample_size_bi_connector: 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. :param int transaction_lifetime_limit_seconds: Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + if change_stream_options_pre_and_post_images_expire_after_seconds is not None: + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) if default_read_concern is not None: pulumi.set(__self__, "default_read_concern", default_read_concern) if default_write_concern is not None: @@ -3909,6 +3940,14 @@ def __init__(__self__, *, if transaction_lifetime_limit_seconds is not None: pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> Optional[int]: + """ + 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. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -5644,12 +5683,16 @@ def __init__(__self__, *, enabled: Optional[bool] = None, region: Optional[str] = None, role_id: Optional[str] = None, - secret_access_key: Optional[str] = None): + secret_access_key: Optional[str] = None, + valid: Optional[bool] = None): """ - :param str customer_master_key_id: The AWS customer master key used to encrypt and decrypt the MongoDB master keys. - :param bool enabled: Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. - :param str region: The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 - :param str role_id: ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + :param str access_key_id: 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). + :param str customer_master_key_id: Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + :param bool enabled: Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param str region: 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. + :param str role_id: 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. + :param str secret_access_key: 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. + :param bool valid: Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. """ if access_key_id is not None: pulumi.set(__self__, "access_key_id", access_key_id) @@ -5663,17 +5706,22 @@ def __init__(__self__, *, pulumi.set(__self__, "role_id", role_id) if secret_access_key is not None: pulumi.set(__self__, "secret_access_key", secret_access_key) + if valid is not None: + pulumi.set(__self__, "valid", valid) @property @pulumi.getter(name="accessKeyId") def access_key_id(self) -> Optional[str]: + """ + 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). + """ return pulumi.get(self, "access_key_id") @property @pulumi.getter(name="customerMasterKeyId") def customer_master_key_id(self) -> Optional[str]: """ - The AWS customer master key used to encrypt and decrypt the MongoDB master keys. + Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. """ return pulumi.get(self, "customer_master_key_id") @@ -5681,7 +5729,7 @@ def customer_master_key_id(self) -> Optional[str]: @pulumi.getter def enabled(self) -> Optional[bool]: """ - Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details. + Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. """ return pulumi.get(self, "enabled") @@ -5689,7 +5737,7 @@ def enabled(self) -> Optional[bool]: @pulumi.getter def region(self) -> Optional[str]: """ - The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1 + 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. """ return pulumi.get(self, "region") @@ -5697,15 +5745,26 @@ def region(self) -> Optional[str]: @pulumi.getter(name="roleId") def role_id(self) -> Optional[str]: """ - ID of an AWS IAM role authorized to manage an AWS customer master key. To find the ID for an existing IAM role check the `role_id` attribute of the `mongodbatlas_cloud_provider_access` resource. + 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. """ return pulumi.get(self, "role_id") @property @pulumi.getter(name="secretAccessKey") def secret_access_key(self) -> Optional[str]: + """ + 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. + """ return pulumi.get(self, "secret_access_key") + @property + @pulumi.getter + def valid(self) -> Optional[bool]: + """ + Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + @pulumi.output_type class EncryptionAtRestAzureKeyVaultConfig(dict): @@ -5720,6 +5779,8 @@ def __key_warning(key: str): suggest = "key_identifier" elif key == "keyVaultName": suggest = "key_vault_name" + elif key == "requirePrivateNetworking": + suggest = "require_private_networking" elif key == "resourceGroupName": suggest = "resource_group_name" elif key == "subscriptionId": @@ -5744,20 +5805,24 @@ def __init__(__self__, *, enabled: Optional[bool] = None, key_identifier: Optional[str] = None, key_vault_name: Optional[str] = None, + require_private_networking: Optional[bool] = None, resource_group_name: Optional[str] = None, secret: Optional[str] = None, subscription_id: Optional[str] = None, - tenant_id: Optional[str] = None): - """ - :param str azure_environment: The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY - :param str client_id: The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. - :param bool enabled: Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. - :param str key_identifier: The unique identifier of a key in an Azure Key Vault. - :param str key_vault_name: The name of an Azure Key Vault containing your key. - :param str resource_group_name: The name of the Azure Resource group that contains an Azure Key Vault. - :param str secret: The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. - :param str subscription_id: The unique identifier associated with an Azure subscription. - :param str tenant_id: The unique identifier for an Azure AD tenant within an Azure subscription. + tenant_id: Optional[str] = None, + valid: Optional[bool] = None): + """ + :param str azure_environment: Azure environment in which your account credentials reside. + :param str client_id: Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + :param bool enabled: Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param str key_identifier: Web address with a unique key that identifies for your Azure Key Vault. + :param str key_vault_name: Unique string that identifies the Azure Key Vault that contains your key. + :param bool require_private_networking: Enable connection to your Azure Key Vault over private networking. + :param str resource_group_name: Name of the Azure resource group that contains your Azure Key Vault. + :param str secret: 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. + :param str subscription_id: Unique 36-hexadecimal character string that identifies your Azure subscription. + :param str tenant_id: Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + :param bool valid: Flag that indicates whether the Azure encryption key can encrypt and decrypt data. """ if azure_environment is not None: pulumi.set(__self__, "azure_environment", azure_environment) @@ -5769,6 +5834,8 @@ def __init__(__self__, *, pulumi.set(__self__, "key_identifier", key_identifier) if key_vault_name is not None: pulumi.set(__self__, "key_vault_name", key_vault_name) + if require_private_networking is not None: + pulumi.set(__self__, "require_private_networking", require_private_networking) if resource_group_name is not None: pulumi.set(__self__, "resource_group_name", resource_group_name) if secret is not None: @@ -5777,12 +5844,14 @@ def __init__(__self__, *, pulumi.set(__self__, "subscription_id", subscription_id) if tenant_id is not None: pulumi.set(__self__, "tenant_id", tenant_id) + if valid is not None: + pulumi.set(__self__, "valid", valid) @property @pulumi.getter(name="azureEnvironment") def azure_environment(self) -> Optional[str]: """ - The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY + Azure environment in which your account credentials reside. """ return pulumi.get(self, "azure_environment") @@ -5790,7 +5859,7 @@ def azure_environment(self) -> Optional[str]: @pulumi.getter(name="clientId") def client_id(self) -> Optional[str]: """ - The client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant. + Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. """ return pulumi.get(self, "client_id") @@ -5798,7 +5867,7 @@ def client_id(self) -> Optional[str]: @pulumi.getter def enabled(self) -> Optional[bool]: """ - Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. """ return pulumi.get(self, "enabled") @@ -5806,7 +5875,7 @@ def enabled(self) -> Optional[bool]: @pulumi.getter(name="keyIdentifier") def key_identifier(self) -> Optional[str]: """ - The unique identifier of a key in an Azure Key Vault. + Web address with a unique key that identifies for your Azure Key Vault. """ return pulumi.get(self, "key_identifier") @@ -5814,15 +5883,23 @@ def key_identifier(self) -> Optional[str]: @pulumi.getter(name="keyVaultName") def key_vault_name(self) -> Optional[str]: """ - The name of an Azure Key Vault containing your key. + Unique string that identifies the Azure Key Vault that contains your key. """ return pulumi.get(self, "key_vault_name") + @property + @pulumi.getter(name="requirePrivateNetworking") + def require_private_networking(self) -> Optional[bool]: + """ + Enable connection to your Azure Key Vault over private networking. + """ + return pulumi.get(self, "require_private_networking") + @property @pulumi.getter(name="resourceGroupName") def resource_group_name(self) -> Optional[str]: """ - The name of the Azure Resource group that contains an Azure Key Vault. + Name of the Azure resource group that contains your Azure Key Vault. """ return pulumi.get(self, "resource_group_name") @@ -5830,7 +5907,7 @@ def resource_group_name(self) -> Optional[str]: @pulumi.getter def secret(self) -> Optional[str]: """ - The secret associated with the Azure Key Vault specified by azureKeyVault.tenantID. + 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. """ return pulumi.get(self, "secret") @@ -5838,7 +5915,7 @@ def secret(self) -> Optional[str]: @pulumi.getter(name="subscriptionId") def subscription_id(self) -> Optional[str]: """ - The unique identifier associated with an Azure subscription. + Unique 36-hexadecimal character string that identifies your Azure subscription. """ return pulumi.get(self, "subscription_id") @@ -5846,10 +5923,18 @@ def subscription_id(self) -> Optional[str]: @pulumi.getter(name="tenantId") def tenant_id(self) -> Optional[str]: """ - The unique identifier for an Azure AD tenant within an Azure subscription. + Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. """ return pulumi.get(self, "tenant_id") + @property + @pulumi.getter + def valid(self) -> Optional[bool]: + """ + Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + @pulumi.output_type class EncryptionAtRestGoogleCloudKmsConfig(dict): @@ -5875,11 +5960,13 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, key_version_resource_id: Optional[str] = None, - service_account_key: Optional[str] = None): + service_account_key: Optional[str] = None, + valid: Optional[bool] = None): """ - :param bool enabled: Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. - :param str key_version_resource_id: The Key Version Resource ID from your GCP account. - :param str service_account_key: String-formatted JSON object containing GCP KMS credentials from your GCP account. + :param bool enabled: Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param str key_version_resource_id: Resource path that displays the key version resource ID for your Google Cloud KMS. + :param str service_account_key: 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. + :param bool valid: Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. """ if enabled is not None: pulumi.set(__self__, "enabled", enabled) @@ -5887,12 +5974,14 @@ def __init__(__self__, *, pulumi.set(__self__, "key_version_resource_id", key_version_resource_id) if service_account_key is not None: pulumi.set(__self__, "service_account_key", service_account_key) + if valid is not None: + pulumi.set(__self__, "valid", valid) @property @pulumi.getter def enabled(self) -> Optional[bool]: """ - Specifies whether Encryption at Rest is enabled for an Atlas project. To disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details. + Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. """ return pulumi.get(self, "enabled") @@ -5900,7 +5989,7 @@ def enabled(self) -> Optional[bool]: @pulumi.getter(name="keyVersionResourceId") def key_version_resource_id(self) -> Optional[str]: """ - The Key Version Resource ID from your GCP account. + Resource path that displays the key version resource ID for your Google Cloud KMS. """ return pulumi.get(self, "key_version_resource_id") @@ -5908,10 +5997,18 @@ def key_version_resource_id(self) -> Optional[str]: @pulumi.getter(name="serviceAccountKey") def service_account_key(self) -> Optional[str]: """ - String-formatted JSON object containing GCP KMS credentials from your GCP account. + 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. """ return pulumi.get(self, "service_account_key") + @property + @pulumi.getter + def valid(self) -> Optional[bool]: + """ + Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + @pulumi.output_type class EventTriggerEventProcessors(dict): @@ -8159,6 +8256,81 @@ def tier(self) -> Optional[str]: return pulumi.get(self, "tier") +@pulumi.output_type +class StreamProcessorOptions(dict): + def __init__(__self__, *, + dlq: 'outputs.StreamProcessorOptionsDlq'): + """ + :param 'StreamProcessorOptionsDlqArgs' dlq: 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. + """ + pulumi.set(__self__, "dlq", dlq) + + @property + @pulumi.getter + def dlq(self) -> 'outputs.StreamProcessorOptionsDlq': + """ + 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. + """ + return pulumi.get(self, "dlq") + + +@pulumi.output_type +class StreamProcessorOptionsDlq(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "connectionName": + suggest = "connection_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamProcessorOptionsDlq. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamProcessorOptionsDlq.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamProcessorOptionsDlq.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + coll: str, + connection_name: str, + db: str): + """ + :param str coll: Name of the collection to use for the DLQ. + :param str connection_name: Name of the connection to write DLQ messages to. Must be an Atlas connection. + :param str db: Name of the database to use for the DLQ. + """ + pulumi.set(__self__, "coll", coll) + pulumi.set(__self__, "connection_name", connection_name) + pulumi.set(__self__, "db", db) + + @property + @pulumi.getter + def coll(self) -> str: + """ + Name of the collection to use for the DLQ. + """ + return pulumi.get(self, "coll") + + @property + @pulumi.getter(name="connectionName") + def connection_name(self) -> str: + """ + Name of the connection to write DLQ messages to. Must be an Atlas connection. + """ + return pulumi.get(self, "connection_name") + + @property + @pulumi.getter + def db(self) -> str: + """ + Name of the database to use for the DLQ. + """ + return pulumi.get(self, "db") + + @pulumi.output_type class X509AuthenticationDatabaseUserCertificate(dict): @staticmethod @@ -8325,6 +8497,7 @@ def last_used_address(self) -> str: @pulumi.output_type class GetAdvancedClusterAdvancedConfigurationResult(dict): def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: int, default_read_concern: str, default_write_concern: str, fail_index_key_too_long: bool, @@ -8337,6 +8510,7 @@ def __init__(__self__, *, sample_size_bi_connector: int, transaction_lifetime_limit_seconds: int): """ + :param int change_stream_options_pre_and_post_images_expire_after_seconds: (Optional) The minimum pre- and post-image retention time in seconds. :param str default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. :param str default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param bool fail_index_key_too_long: 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. **(DEPRECATED.)** This parameter has been removed as of [MongoDB 4.4](https://www.mongodb.com/docs/manual/reference/parameters/#mongodb-parameter-param.failIndexKeyTooLong). @@ -8349,6 +8523,7 @@ def __init__(__self__, *, :param int sample_size_bi_connector: 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. :param int transaction_lifetime_limit_seconds: Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) pulumi.set(__self__, "default_read_concern", default_read_concern) pulumi.set(__self__, "default_write_concern", default_write_concern) pulumi.set(__self__, "fail_index_key_too_long", fail_index_key_too_long) @@ -8361,6 +8536,14 @@ def __init__(__self__, *, pulumi.set(__self__, "sample_size_bi_connector", sample_size_bi_connector) pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> int: + """ + (Optional) The minimum pre- and post-image retention time in seconds. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -9220,6 +9403,7 @@ def __init__(__self__, *, name: str, paused: bool, pit_enabled: bool, + replica_set_scaling_strategy: str, replication_specs: Sequence['outputs.GetAdvancedClustersResultReplicationSpecResult'], root_cert_type: str, state_name: str, @@ -9239,6 +9423,7 @@ def __init__(__self__, *, :param str mongo_db_version: Version of MongoDB the cluster runs, in `major-version`.`minor-version` format. :param bool paused: Flag that indicates whether the cluster is paused or not. :param bool pit_enabled: Flag that indicates if the cluster uses Continuous Cloud Backup. + :param str replica_set_scaling_strategy: (Optional) Replica set scaling mode for your cluster. :param Sequence['GetAdvancedClustersResultReplicationSpecArgs'] replication_specs: List of settings that configure your cluster regions. If `use_replication_spec_per_shard = true`, 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 :param str root_cert_type: Certificate Authority that MongoDB Atlas clusters use. :param str state_name: Current state of the cluster. The possible states are: @@ -9261,6 +9446,7 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) pulumi.set(__self__, "paused", paused) pulumi.set(__self__, "pit_enabled", pit_enabled) + pulumi.set(__self__, "replica_set_scaling_strategy", replica_set_scaling_strategy) pulumi.set(__self__, "replication_specs", replication_specs) pulumi.set(__self__, "root_cert_type", root_cert_type) pulumi.set(__self__, "state_name", state_name) @@ -9337,7 +9523,7 @@ def global_cluster_self_managed_sharding(self) -> bool: @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Sequence['outputs.GetAdvancedClustersResultLabelResult']: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. @@ -9381,6 +9567,14 @@ def pit_enabled(self) -> bool: """ return pulumi.get(self, "pit_enabled") + @property + @pulumi.getter(name="replicaSetScalingStrategy") + def replica_set_scaling_strategy(self) -> str: + """ + (Optional) Replica set scaling mode for your cluster. + """ + return pulumi.get(self, "replica_set_scaling_strategy") + @property @pulumi.getter(name="replicationSpecs") def replication_specs(self) -> Sequence['outputs.GetAdvancedClustersResultReplicationSpecResult']: @@ -9433,6 +9627,7 @@ def version_release_system(self) -> str: @pulumi.output_type class GetAdvancedClustersResultAdvancedConfigurationResult(dict): def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: int, default_read_concern: str, default_write_concern: str, fail_index_key_too_long: bool, @@ -9445,6 +9640,7 @@ def __init__(__self__, *, sample_size_bi_connector: int, transaction_lifetime_limit_seconds: int): """ + :param int change_stream_options_pre_and_post_images_expire_after_seconds: (Optional) The minimum pre- and post-image retention time in seconds. :param str default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). **(DEPRECATED.)** MongoDB 5.0 and later clusters default to `local`. To use a custom read concern level, please refer to your driver documentation. :param str default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param bool fail_index_key_too_long: 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. **(DEPRECATED.)** This parameter has been removed as of [MongoDB 4.4](https://www.mongodb.com/docs/manual/reference/parameters/#mongodb-parameter-param.failIndexKeyTooLong). @@ -9455,7 +9651,9 @@ def __init__(__self__, *, :param int oplog_size_mb: The custom oplog size of the cluster. Without a value that indicates that the cluster uses the default oplog size calculated by Atlas. :param int sample_refresh_interval_bi_connector: 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. :param int sample_size_bi_connector: 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. + :param int transaction_lifetime_limit_seconds: (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) pulumi.set(__self__, "default_read_concern", default_read_concern) pulumi.set(__self__, "default_write_concern", default_write_concern) pulumi.set(__self__, "fail_index_key_too_long", fail_index_key_too_long) @@ -9468,6 +9666,14 @@ def __init__(__self__, *, pulumi.set(__self__, "sample_size_bi_connector", sample_size_bi_connector) pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> int: + """ + (Optional) The minimum pre- and post-image retention time in seconds. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -9553,6 +9759,9 @@ def sample_size_bi_connector(self) -> int: @property @pulumi.getter(name="transactionLifetimeLimitSeconds") def transaction_lifetime_limit_seconds(self) -> int: + """ + (Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. + """ return pulumi.get(self, "transaction_lifetime_limit_seconds") @@ -13415,6 +13624,7 @@ def tenant_id(self) -> str: @pulumi.output_type class GetClusterAdvancedConfigurationResult(dict): def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: int, default_read_concern: str, default_write_concern: str, fail_index_key_too_long: bool, @@ -13427,6 +13637,7 @@ def __init__(__self__, *, sample_size_bi_connector: int, transaction_lifetime_limit_seconds: int): """ + :param int change_stream_options_pre_and_post_images_expire_after_seconds: (Optional) The minimum pre- and post-image retention time in seconds. :param str default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). :param str default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param bool fail_index_key_too_long: 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. @@ -13439,6 +13650,7 @@ def __init__(__self__, *, :param int sample_size_bi_connector: 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. :param int transaction_lifetime_limit_seconds: Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds. """ + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) pulumi.set(__self__, "default_read_concern", default_read_concern) pulumi.set(__self__, "default_write_concern", default_write_concern) pulumi.set(__self__, "fail_index_key_too_long", fail_index_key_too_long) @@ -13451,6 +13663,14 @@ def __init__(__self__, *, pulumi.set(__self__, "sample_size_bi_connector", sample_size_bi_connector) pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> int: + """ + (Optional) The minimum pre- and post-image retention time in seconds. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -14313,7 +14533,7 @@ def encryption_at_rest_provider(self) -> str: @property @pulumi.getter - @_utilities.deprecated("""This parameter is deprecated and will be removed by September 2024. Please transition to tags.""") + @_utilities.deprecated("""This parameter is deprecated and will be removed in the future. Please transition to tags""") def labels(self) -> Sequence['outputs.GetClustersResultLabelResult']: """ Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use `tags` instead. @@ -14547,6 +14767,7 @@ def version_release_system(self) -> str: @pulumi.output_type class GetClustersResultAdvancedConfigurationResult(dict): def __init__(__self__, *, + change_stream_options_pre_and_post_images_expire_after_seconds: int, default_read_concern: str, default_write_concern: str, fail_index_key_too_long: bool, @@ -14559,6 +14780,7 @@ def __init__(__self__, *, sample_size_bi_connector: int, transaction_lifetime_limit_seconds: int): """ + :param int change_stream_options_pre_and_post_images_expire_after_seconds: (Optional) The minimum pre- and post-image retention time in seconds. :param str default_read_concern: [Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. MongoDB 4.4 clusters default to [available](https://docs.mongodb.com/manual/reference/read-concern-available/). :param str default_write_concern: [Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 4.4 clusters default to [1](https://docs.mongodb.com/manual/reference/write-concern/). :param bool fail_index_key_too_long: 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. @@ -14570,6 +14792,7 @@ def __init__(__self__, *, :param int sample_refresh_interval_bi_connector: 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. :param int sample_size_bi_connector: 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. """ + pulumi.set(__self__, "change_stream_options_pre_and_post_images_expire_after_seconds", change_stream_options_pre_and_post_images_expire_after_seconds) pulumi.set(__self__, "default_read_concern", default_read_concern) pulumi.set(__self__, "default_write_concern", default_write_concern) pulumi.set(__self__, "fail_index_key_too_long", fail_index_key_too_long) @@ -14582,6 +14805,14 @@ def __init__(__self__, *, pulumi.set(__self__, "sample_size_bi_connector", sample_size_bi_connector) pulumi.set(__self__, "transaction_lifetime_limit_seconds", transaction_lifetime_limit_seconds) + @property + @pulumi.getter(name="changeStreamOptionsPreAndPostImagesExpireAfterSeconds") + def change_stream_options_pre_and_post_images_expire_after_seconds(self) -> int: + """ + (Optional) The minimum pre- and post-image retention time in seconds. + """ + return pulumi.get(self, "change_stream_options_pre_and_post_images_expire_after_seconds") + @property @pulumi.getter(name="defaultReadConcern") @_utilities.deprecated("""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.html.markdown""") @@ -16525,6 +16756,353 @@ def type(self) -> str: return pulumi.get(self, "type") +@pulumi.output_type +class GetEncryptionAtRestAwsKmsConfigResult(dict): + def __init__(__self__, *, + access_key_id: str, + customer_master_key_id: str, + enabled: bool, + region: str, + role_id: str, + secret_access_key: str, + valid: bool): + """ + :param str access_key_id: 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). + :param str customer_master_key_id: Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + :param bool enabled: Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param str region: 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. + :param str role_id: 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. + :param str secret_access_key: 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. + :param bool valid: Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + pulumi.set(__self__, "access_key_id", access_key_id) + pulumi.set(__self__, "customer_master_key_id", customer_master_key_id) + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "role_id", role_id) + pulumi.set(__self__, "secret_access_key", secret_access_key) + pulumi.set(__self__, "valid", valid) + + @property + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> str: + """ + 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). + """ + return pulumi.get(self, "access_key_id") + + @property + @pulumi.getter(name="customerMasterKeyId") + def customer_master_key_id(self) -> str: + """ + Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys. + """ + return pulumi.get(self, "customer_master_key_id") + + @property + @pulumi.getter + def enabled(self) -> bool: + """ + Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter + def region(self) -> str: + """ + 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. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="roleId") + def role_id(self) -> str: + """ + 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. + """ + return pulumi.get(self, "role_id") + + @property + @pulumi.getter(name="secretAccessKey") + def secret_access_key(self) -> str: + """ + 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. + """ + return pulumi.get(self, "secret_access_key") + + @property + @pulumi.getter + def valid(self) -> bool: + """ + Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + + +@pulumi.output_type +class GetEncryptionAtRestAzureKeyVaultConfigResult(dict): + def __init__(__self__, *, + azure_environment: str, + client_id: str, + enabled: bool, + key_identifier: str, + key_vault_name: str, + require_private_networking: bool, + resource_group_name: str, + secret: str, + subscription_id: str, + tenant_id: str, + valid: bool): + """ + :param str azure_environment: Azure environment in which your account credentials reside. + :param str client_id: Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + :param bool enabled: Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param str key_identifier: Web address with a unique key that identifies for your Azure Key Vault. + :param str key_vault_name: Unique string that identifies the Azure Key Vault that contains your key. + :param bool require_private_networking: Enable connection to your Azure Key Vault over private networking. + :param str resource_group_name: Name of the Azure resource group that contains your Azure Key Vault. + :param str secret: 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. + :param str subscription_id: Unique 36-hexadecimal character string that identifies your Azure subscription. + :param str tenant_id: Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + :param bool valid: Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + """ + pulumi.set(__self__, "azure_environment", azure_environment) + pulumi.set(__self__, "client_id", client_id) + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "key_identifier", key_identifier) + pulumi.set(__self__, "key_vault_name", key_vault_name) + pulumi.set(__self__, "require_private_networking", require_private_networking) + pulumi.set(__self__, "resource_group_name", resource_group_name) + pulumi.set(__self__, "secret", secret) + pulumi.set(__self__, "subscription_id", subscription_id) + pulumi.set(__self__, "tenant_id", tenant_id) + pulumi.set(__self__, "valid", valid) + + @property + @pulumi.getter(name="azureEnvironment") + def azure_environment(self) -> str: + """ + Azure environment in which your account credentials reside. + """ + return pulumi.get(self, "azure_environment") + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> str: + """ + Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant. + """ + return pulumi.get(self, "client_id") + + @property + @pulumi.getter + def enabled(self) -> bool: + """ + Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="keyIdentifier") + def key_identifier(self) -> str: + """ + Web address with a unique key that identifies for your Azure Key Vault. + """ + return pulumi.get(self, "key_identifier") + + @property + @pulumi.getter(name="keyVaultName") + def key_vault_name(self) -> str: + """ + Unique string that identifies the Azure Key Vault that contains your key. + """ + return pulumi.get(self, "key_vault_name") + + @property + @pulumi.getter(name="requirePrivateNetworking") + def require_private_networking(self) -> bool: + """ + Enable connection to your Azure Key Vault over private networking. + """ + return pulumi.get(self, "require_private_networking") + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> str: + """ + Name of the Azure resource group that contains your Azure Key Vault. + """ + return pulumi.get(self, "resource_group_name") + + @property + @pulumi.getter + def secret(self) -> str: + """ + 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. + """ + return pulumi.get(self, "secret") + + @property + @pulumi.getter(name="subscriptionId") + def subscription_id(self) -> str: + """ + Unique 36-hexadecimal character string that identifies your Azure subscription. + """ + return pulumi.get(self, "subscription_id") + + @property + @pulumi.getter(name="tenantId") + def tenant_id(self) -> str: + """ + Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription. + """ + return pulumi.get(self, "tenant_id") + + @property + @pulumi.getter + def valid(self) -> bool: + """ + Flag that indicates whether the Azure encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + + +@pulumi.output_type +class GetEncryptionAtRestGoogleCloudKmsConfigResult(dict): + def __init__(__self__, *, + enabled: bool, + key_version_resource_id: str, + service_account_key: str, + valid: bool): + """ + :param bool enabled: Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + :param str key_version_resource_id: Resource path that displays the key version resource ID for your Google Cloud KMS. + :param str service_account_key: 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. + :param bool valid: Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "key_version_resource_id", key_version_resource_id) + pulumi.set(__self__, "service_account_key", service_account_key) + pulumi.set(__self__, "valid", valid) + + @property + @pulumi.getter + def enabled(self) -> bool: + """ + Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="keyVersionResourceId") + def key_version_resource_id(self) -> str: + """ + Resource path that displays the key version resource ID for your Google Cloud KMS. + """ + return pulumi.get(self, "key_version_resource_id") + + @property + @pulumi.getter(name="serviceAccountKey") + def service_account_key(self) -> str: + """ + 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. + """ + return pulumi.get(self, "service_account_key") + + @property + @pulumi.getter + def valid(self) -> bool: + """ + Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data. + """ + return pulumi.get(self, "valid") + + +@pulumi.output_type +class GetEncryptionAtRestPrivateEndpointsResultResult(dict): + def __init__(__self__, *, + cloud_provider: str, + error_message: str, + id: str, + private_endpoint_connection_name: str, + project_id: str, + region_name: str, + status: str): + """ + :param str cloud_provider: Label that identifies the cloud provider of the private endpoint. + :param str error_message: Error message for failures associated with the Encryption At Rest private endpoint. + :param str id: Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + :param str private_endpoint_connection_name: Connection name of the Azure Private Endpoint. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. + :param str region_name: Cloud provider region in which the Encryption At Rest private endpoint is located. + :param str status: State of the Encryption At Rest private endpoint. + """ + pulumi.set(__self__, "cloud_provider", cloud_provider) + pulumi.set(__self__, "error_message", error_message) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "private_endpoint_connection_name", private_endpoint_connection_name) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "region_name", region_name) + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> str: + """ + Label that identifies the cloud provider of the private endpoint. + """ + return pulumi.get(self, "cloud_provider") + + @property + @pulumi.getter(name="errorMessage") + def error_message(self) -> str: + """ + Error message for failures associated with the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "error_message") + + @property + @pulumi.getter + def id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies the Private Endpoint Service. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="privateEndpointConnectionName") + def private_endpoint_connection_name(self) -> str: + """ + Connection name of the Azure Private Endpoint. + """ + return pulumi.get(self, "private_endpoint_connection_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> str: + """ + Cloud provider region in which the Encryption At Rest private endpoint is located. + """ + return pulumi.get(self, "region_name") + + @property + @pulumi.getter + def status(self) -> str: + """ + State of the Encryption At Rest private endpoint. + """ + return pulumi.get(self, "status") + + @pulumi.output_type class GetEventTriggerEventProcessorResult(dict): def __init__(__self__, *, @@ -20691,11 +21269,17 @@ def services(self) -> 'outputs.GetProjectIpAddressesServicesResult': class GetProjectIpAddressesServicesResult(dict): def __init__(__self__, *, clusters: Sequence['outputs.GetProjectIpAddressesServicesClusterResult']): + """ + :param Sequence['GetProjectIpAddressesServicesClusterArgs'] clusters: IP addresses of clusters. + """ pulumi.set(__self__, "clusters", clusters) @property @pulumi.getter def clusters(self) -> Sequence['outputs.GetProjectIpAddressesServicesClusterResult']: + """ + IP addresses of clusters. + """ return pulumi.get(self, "clusters") @@ -20705,6 +21289,11 @@ def __init__(__self__, *, cluster_name: str, inbounds: Sequence[str], outbounds: Sequence[str]): + """ + :param str cluster_name: Human-readable label that identifies the cluster. + :param Sequence[str] inbounds: 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. + :param Sequence[str] outbounds: 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. + """ pulumi.set(__self__, "cluster_name", cluster_name) pulumi.set(__self__, "inbounds", inbounds) pulumi.set(__self__, "outbounds", outbounds) @@ -20712,16 +21301,25 @@ def __init__(__self__, *, @property @pulumi.getter(name="clusterName") def cluster_name(self) -> str: + """ + Human-readable label that identifies the cluster. + """ return pulumi.get(self, "cluster_name") @property @pulumi.getter def inbounds(self) -> Sequence[str]: + """ + 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. + """ return pulumi.get(self, "inbounds") @property @pulumi.getter def outbounds(self) -> Sequence[str]: + """ + 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. + """ return pulumi.get(self, "outbounds") @@ -20844,7 +21442,7 @@ def __init__(__self__, *, :param int cluster_count: The number of Atlas clusters deployed in the project. :param str created: The ISO-8601-formatted timestamp of when Atlas created the project. :param str id: Autogenerated Unique ID for this data source. - :param 'GetProjectsResultIpAddressesArgs' ip_addresses: IP addresses in a project categorized by services. See IP Addresses. + :param 'GetProjectsResultIpAddressesArgs' ip_addresses: IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. :param bool is_collect_database_specifics_statistics_enabled: Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. :param bool is_data_explorer_enabled: Flag that indicates whether to enable Data Explorer for the project. If enabled, you can query your database with an easy to use interface. :param bool is_extended_storage_sizes_enabled: Flag that indicates whether to enable extended storage sizes for the specified project. @@ -20901,9 +21499,10 @@ def id(self) -> str: @property @pulumi.getter(name="ipAddresses") + @_utilities.deprecated("""This parameter is deprecated and will be removed by 1.21.0. Please transition to get_project_ip_addresses data source.""") def ip_addresses(self) -> 'outputs.GetProjectsResultIpAddressesResult': """ - IP addresses in a project categorized by services. See IP Addresses. + IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. """ return pulumi.get(self, "ip_addresses") @@ -22315,6 +22914,217 @@ def tier(self) -> str: return pulumi.get(self, "tier") +@pulumi.output_type +class GetStreamProcessorOptionsResult(dict): + def __init__(__self__, *, + dlq: 'outputs.GetStreamProcessorOptionsDlqResult'): + """ + :param 'GetStreamProcessorOptionsDlqArgs' dlq: 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. + """ + pulumi.set(__self__, "dlq", dlq) + + @property + @pulumi.getter + def dlq(self) -> 'outputs.GetStreamProcessorOptionsDlqResult': + """ + 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. + """ + return pulumi.get(self, "dlq") + + +@pulumi.output_type +class GetStreamProcessorOptionsDlqResult(dict): + def __init__(__self__, *, + coll: str, + connection_name: str, + db: str): + """ + :param str coll: Name of the collection to use for the DLQ. + :param str connection_name: Name of the connection to write DLQ messages to. Must be an Atlas connection. + :param str db: Name of the database to use for the DLQ. + """ + pulumi.set(__self__, "coll", coll) + pulumi.set(__self__, "connection_name", connection_name) + pulumi.set(__self__, "db", db) + + @property + @pulumi.getter + def coll(self) -> str: + """ + Name of the collection to use for the DLQ. + """ + return pulumi.get(self, "coll") + + @property + @pulumi.getter(name="connectionName") + def connection_name(self) -> str: + """ + Name of the connection to write DLQ messages to. Must be an Atlas connection. + """ + return pulumi.get(self, "connection_name") + + @property + @pulumi.getter + def db(self) -> str: + """ + Name of the database to use for the DLQ. + """ + return pulumi.get(self, "db") + + +@pulumi.output_type +class GetStreamProcessorsResultResult(dict): + def __init__(__self__, *, + id: str, + instance_name: str, + options: 'outputs.GetStreamProcessorsResultOptionsResult', + pipeline: str, + processor_name: str, + project_id: str, + state: str, + stats: str): + """ + :param str id: Unique 24-hexadecimal character string that identifies the stream processor. + :param str instance_name: Human-readable label that identifies the stream instance. + :param 'GetStreamProcessorsResultOptionsArgs' options: Optional configuration for the stream processor. + :param str pipeline: Stream aggregation pipeline you want to apply to your streaming data. + :param str processor_name: Human-readable label that identifies the stream processor. + :param str project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + :param str state: The state of the stream processor. + :param str stats: The stats associated with the stream processor. + """ + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "instance_name", instance_name) + pulumi.set(__self__, "options", options) + pulumi.set(__self__, "pipeline", pipeline) + pulumi.set(__self__, "processor_name", processor_name) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "state", state) + pulumi.set(__self__, "stats", stats) + + @property + @pulumi.getter + def id(self) -> str: + """ + Unique 24-hexadecimal character string that identifies the stream processor. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> str: + """ + Human-readable label that identifies the stream instance. + """ + return pulumi.get(self, "instance_name") + + @property + @pulumi.getter + def options(self) -> 'outputs.GetStreamProcessorsResultOptionsResult': + """ + Optional configuration for the stream processor. + """ + return pulumi.get(self, "options") + + @property + @pulumi.getter + def pipeline(self) -> str: + """ + Stream aggregation pipeline you want to apply to your streaming data. + """ + return pulumi.get(self, "pipeline") + + @property + @pulumi.getter(name="processorName") + def processor_name(self) -> str: + """ + Human-readable label that identifies the stream processor. + """ + return pulumi.get(self, "processor_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def state(self) -> str: + """ + The state of the stream processor. + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter + def stats(self) -> str: + """ + The stats associated with the stream processor. + """ + return pulumi.get(self, "stats") + + +@pulumi.output_type +class GetStreamProcessorsResultOptionsResult(dict): + def __init__(__self__, *, + dlq: 'outputs.GetStreamProcessorsResultOptionsDlqResult'): + """ + :param 'GetStreamProcessorsResultOptionsDlqArgs' dlq: 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. + """ + pulumi.set(__self__, "dlq", dlq) + + @property + @pulumi.getter + def dlq(self) -> 'outputs.GetStreamProcessorsResultOptionsDlqResult': + """ + 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. + """ + return pulumi.get(self, "dlq") + + +@pulumi.output_type +class GetStreamProcessorsResultOptionsDlqResult(dict): + def __init__(__self__, *, + coll: str, + connection_name: str, + db: str): + """ + :param str coll: Name of the collection to use for the DLQ. + :param str connection_name: Name of the connection to write DLQ messages to. Must be an Atlas connection. + :param str db: Name of the database to use for the DLQ. + """ + pulumi.set(__self__, "coll", coll) + pulumi.set(__self__, "connection_name", connection_name) + pulumi.set(__self__, "db", db) + + @property + @pulumi.getter + def coll(self) -> str: + """ + Name of the collection to use for the DLQ. + """ + return pulumi.get(self, "coll") + + @property + @pulumi.getter(name="connectionName") + def connection_name(self) -> str: + """ + Name of the connection to write DLQ messages to. Must be an Atlas connection. + """ + return pulumi.get(self, "connection_name") + + @property + @pulumi.getter + def db(self) -> str: + """ + Name of the database to use for the DLQ. + """ + return pulumi.get(self, "db") + + @pulumi.output_type class GetThirdPartyIntegrationsResultResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_mongodbatlas/project.py b/sdk/python/pulumi_mongodbatlas/project.py index d6b0f59b..90c74293 100644 --- a/sdk/python/pulumi_mongodbatlas/project.py +++ b/sdk/python/pulumi_mongodbatlas/project.py @@ -260,7 +260,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering Project resources. :param pulumi.Input[int] cluster_count: The number of Atlas clusters deployed in the project. :param pulumi.Input[str] created: The ISO-8601-formatted timestamp of when Atlas created the project. - :param pulumi.Input['ProjectIpAddressesArgs'] ip_addresses: IP addresses in a project categorized by services. See IP Addresses. + :param pulumi.Input['ProjectIpAddressesArgs'] ip_addresses: IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. :param pulumi.Input[bool] is_collect_database_specifics_statistics_enabled: 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. :param pulumi.Input[bool] is_data_explorer_enabled: 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. :param pulumi.Input[bool] is_extended_storage_sizes_enabled: 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. @@ -278,6 +278,9 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_count", cluster_count) if created is not None: pulumi.set(__self__, "created", created) + if ip_addresses is not None: + warnings.warn("""This parameter is deprecated and will be removed by 1.21.0. Please transition to get_project_ip_addresses data source.""", DeprecationWarning) + pulumi.log.warn("""ip_addresses is deprecated: This parameter is deprecated and will be removed by 1.21.0. Please transition to get_project_ip_addresses data source.""") if ip_addresses is not None: pulumi.set(__self__, "ip_addresses", ip_addresses) if is_collect_database_specifics_statistics_enabled is not None: @@ -335,9 +338,10 @@ def created(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="ipAddresses") + @_utilities.deprecated("""This parameter is deprecated and will be removed by 1.21.0. Please transition to get_project_ip_addresses data source.""") def ip_addresses(self) -> Optional[pulumi.Input['ProjectIpAddressesArgs']]: """ - IP addresses in a project categorized by services. See IP Addresses. + IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. """ return pulumi.get(self, "ip_addresses") @@ -758,7 +762,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] cluster_count: The number of Atlas clusters deployed in the project. :param pulumi.Input[str] created: The ISO-8601-formatted timestamp of when Atlas created the project. - :param pulumi.Input[Union['ProjectIpAddressesArgs', 'ProjectIpAddressesArgsDict']] ip_addresses: IP addresses in a project categorized by services. See IP Addresses. + :param pulumi.Input[Union['ProjectIpAddressesArgs', 'ProjectIpAddressesArgsDict']] ip_addresses: IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. :param pulumi.Input[bool] is_collect_database_specifics_statistics_enabled: 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. :param pulumi.Input[bool] is_data_explorer_enabled: 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. :param pulumi.Input[bool] is_extended_storage_sizes_enabled: 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. @@ -813,9 +817,10 @@ def created(self) -> pulumi.Output[str]: @property @pulumi.getter(name="ipAddresses") + @_utilities.deprecated("""This parameter is deprecated and will be removed by 1.21.0. Please transition to get_project_ip_addresses data source.""") def ip_addresses(self) -> pulumi.Output['outputs.ProjectIpAddresses']: """ - IP addresses in a project categorized by services. See IP Addresses. + IP addresses in a project categorized by services. See IP Addresses. **WARNING:** this attribute is deprecated and will be removed in version 1.21.0. Use the `get_project_ip_addresses` data source instead. """ return pulumi.get(self, "ip_addresses") diff --git a/sdk/python/pulumi_mongodbatlas/stream_processor.py b/sdk/python/pulumi_mongodbatlas/stream_processor.py new file mode 100644 index 00000000..c5390ad8 --- /dev/null +++ b/sdk/python/pulumi_mongodbatlas/stream_processor.py @@ -0,0 +1,450 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['StreamProcessorArgs', 'StreamProcessor'] + +@pulumi.input_type +class StreamProcessorArgs: + def __init__(__self__, *, + instance_name: pulumi.Input[str], + pipeline: pulumi.Input[str], + processor_name: pulumi.Input[str], + project_id: pulumi.Input[str], + options: Optional[pulumi.Input['StreamProcessorOptionsArgs']] = None, + state: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a StreamProcessor resource. + :param pulumi.Input[str] instance_name: Human-readable label that identifies the stream instance. + :param pulumi.Input[str] pipeline: 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + :param pulumi.Input[str] processor_name: Human-readable label that identifies the stream processor. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + :param pulumi.Input['StreamProcessorOptionsArgs'] options: Optional configuration for the stream processor. + :param pulumi.Input[str] state: 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + """ + pulumi.set(__self__, "instance_name", instance_name) + pulumi.set(__self__, "pipeline", pipeline) + pulumi.set(__self__, "processor_name", processor_name) + pulumi.set(__self__, "project_id", project_id) + if options is not None: + pulumi.set(__self__, "options", options) + if state is not None: + pulumi.set(__self__, "state", state) + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> pulumi.Input[str]: + """ + Human-readable label that identifies the stream instance. + """ + return pulumi.get(self, "instance_name") + + @instance_name.setter + def instance_name(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_name", value) + + @property + @pulumi.getter + def pipeline(self) -> pulumi.Input[str]: + """ + 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + """ + return pulumi.get(self, "pipeline") + + @pipeline.setter + def pipeline(self, value: pulumi.Input[str]): + pulumi.set(self, "pipeline", value) + + @property + @pulumi.getter(name="processorName") + def processor_name(self) -> pulumi.Input[str]: + """ + Human-readable label that identifies the stream processor. + """ + return pulumi.get(self, "processor_name") + + @processor_name.setter + def processor_name(self, value: pulumi.Input[str]): + pulumi.set(self, "processor_name", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def options(self) -> Optional[pulumi.Input['StreamProcessorOptionsArgs']]: + """ + Optional configuration for the stream processor. + """ + return pulumi.get(self, "options") + + @options.setter + def options(self, value: Optional[pulumi.Input['StreamProcessorOptionsArgs']]): + pulumi.set(self, "options", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + +@pulumi.input_type +class _StreamProcessorState: + def __init__(__self__, *, + instance_name: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['StreamProcessorOptionsArgs']] = None, + pipeline: Optional[pulumi.Input[str]] = None, + processor_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + stats: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering StreamProcessor resources. + :param pulumi.Input[str] instance_name: Human-readable label that identifies the stream instance. + :param pulumi.Input['StreamProcessorOptionsArgs'] options: Optional configuration for the stream processor. + :param pulumi.Input[str] pipeline: 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + :param pulumi.Input[str] processor_name: Human-readable label that identifies the stream processor. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + :param pulumi.Input[str] state: 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + :param pulumi.Input[str] stats: 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. + """ + if instance_name is not None: + pulumi.set(__self__, "instance_name", instance_name) + if options is not None: + pulumi.set(__self__, "options", options) + if pipeline is not None: + pulumi.set(__self__, "pipeline", pipeline) + if processor_name is not None: + pulumi.set(__self__, "processor_name", processor_name) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if state is not None: + pulumi.set(__self__, "state", state) + if stats is not None: + pulumi.set(__self__, "stats", stats) + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> Optional[pulumi.Input[str]]: + """ + Human-readable label that identifies the stream instance. + """ + return pulumi.get(self, "instance_name") + + @instance_name.setter + def instance_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_name", value) + + @property + @pulumi.getter + def options(self) -> Optional[pulumi.Input['StreamProcessorOptionsArgs']]: + """ + Optional configuration for the stream processor. + """ + return pulumi.get(self, "options") + + @options.setter + def options(self, value: Optional[pulumi.Input['StreamProcessorOptionsArgs']]): + pulumi.set(self, "options", value) + + @property + @pulumi.getter + def pipeline(self) -> Optional[pulumi.Input[str]]: + """ + 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + """ + return pulumi.get(self, "pipeline") + + @pipeline.setter + def pipeline(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pipeline", value) + + @property + @pulumi.getter(name="processorName") + def processor_name(self) -> Optional[pulumi.Input[str]]: + """ + Human-readable label that identifies the stream processor. + """ + return pulumi.get(self, "processor_name") + + @processor_name.setter + def processor_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "processor_name", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter + def stats(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "stats") + + @stats.setter + def stats(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "stats", value) + + +class StreamProcessor(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + instance_name: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Union['StreamProcessorOptionsArgs', 'StreamProcessorOptionsArgsDict']]] = None, + pipeline: Optional[pulumi.Input[str]] = None, + processor_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] instance_name: Human-readable label that identifies the stream instance. + :param pulumi.Input[Union['StreamProcessorOptionsArgs', 'StreamProcessorOptionsArgsDict']] options: Optional configuration for the stream processor. + :param pulumi.Input[str] pipeline: 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + :param pulumi.Input[str] processor_name: Human-readable label that identifies the stream processor. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + :param pulumi.Input[str] state: 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: StreamProcessorArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + :param str resource_name: The name of the resource. + :param StreamProcessorArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(StreamProcessorArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + instance_name: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Union['StreamProcessorOptionsArgs', 'StreamProcessorOptionsArgsDict']]] = None, + pipeline: Optional[pulumi.Input[str]] = None, + processor_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = StreamProcessorArgs.__new__(StreamProcessorArgs) + + if instance_name is None and not opts.urn: + raise TypeError("Missing required property 'instance_name'") + __props__.__dict__["instance_name"] = instance_name + __props__.__dict__["options"] = options + if pipeline is None and not opts.urn: + raise TypeError("Missing required property 'pipeline'") + __props__.__dict__["pipeline"] = pipeline + if processor_name is None and not opts.urn: + raise TypeError("Missing required property 'processor_name'") + __props__.__dict__["processor_name"] = processor_name + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["state"] = state + __props__.__dict__["stats"] = None + super(StreamProcessor, __self__).__init__( + 'mongodbatlas:index/streamProcessor:StreamProcessor', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + instance_name: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Union['StreamProcessorOptionsArgs', 'StreamProcessorOptionsArgsDict']]] = None, + pipeline: Optional[pulumi.Input[str]] = None, + processor_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + stats: Optional[pulumi.Input[str]] = None) -> 'StreamProcessor': + """ + Get an existing StreamProcessor resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] instance_name: Human-readable label that identifies the stream instance. + :param pulumi.Input[Union['StreamProcessorOptionsArgs', 'StreamProcessorOptionsArgsDict']] options: Optional configuration for the stream processor. + :param pulumi.Input[str] pipeline: 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + :param pulumi.Input[str] processor_name: Human-readable label that identifies the stream processor. + :param pulumi.Input[str] project_id: Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + :param pulumi.Input[str] state: 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + :param pulumi.Input[str] stats: 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _StreamProcessorState.__new__(_StreamProcessorState) + + __props__.__dict__["instance_name"] = instance_name + __props__.__dict__["options"] = options + __props__.__dict__["pipeline"] = pipeline + __props__.__dict__["processor_name"] = processor_name + __props__.__dict__["project_id"] = project_id + __props__.__dict__["state"] = state + __props__.__dict__["stats"] = stats + return StreamProcessor(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> pulumi.Output[str]: + """ + Human-readable label that identifies the stream instance. + """ + return pulumi.get(self, "instance_name") + + @property + @pulumi.getter + def options(self) -> pulumi.Output[Optional['outputs.StreamProcessorOptions']]: + """ + Optional configuration for the stream processor. + """ + return pulumi.get(self, "options") + + @property + @pulumi.getter + def pipeline(self) -> pulumi.Output[str]: + """ + 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 settig this attribute. For more details see [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/) + """ + return pulumi.get(self, "pipeline") + + @property + @pulumi.getter(name="processorName") + def processor_name(self) -> pulumi.Output[str]: + """ + Human-readable label that identifies the stream processor. + """ + return pulumi.get(self, "processor_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + 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. **NOTE** When a stream processor is created, + the only valid states are CREATED or STARTED. A stream processor can be automatically started when creating it if the + state is set to STARTED. + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter + def stats(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "stats") +