@pulumi/mongodbatlas 3.18.0-alpha.1726033906 → 3.18.0-alpha.1726175162

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/advancedCluster.d.ts +15 -3
  2. package/advancedCluster.js +2 -0
  3. package/advancedCluster.js.map +1 -1
  4. package/cluster.d.ts +3 -3
  5. package/encryptionAtRest.d.ts +30 -13
  6. package/encryptionAtRest.js +0 -10
  7. package/encryptionAtRest.js.map +1 -1
  8. package/encryptionAtRestPrivateEndpoint.d.ts +161 -0
  9. package/encryptionAtRestPrivateEndpoint.js +133 -0
  10. package/encryptionAtRestPrivateEndpoint.js.map +1 -0
  11. package/getAdvancedCluster.d.ts +5 -1
  12. package/getAdvancedCluster.js.map +1 -1
  13. package/getCluster.d.ts +1 -1
  14. package/getEncryptionAtRest.d.ts +275 -0
  15. package/getEncryptionAtRest.js +247 -0
  16. package/getEncryptionAtRest.js.map +1 -0
  17. package/getEncryptionAtRestPrivateEndpoint.d.ts +122 -0
  18. package/getEncryptionAtRestPrivateEndpoint.js +73 -0
  19. package/getEncryptionAtRestPrivateEndpoint.js.map +1 -0
  20. package/getEncryptionAtRestPrivateEndpoints.d.ts +101 -0
  21. package/getEncryptionAtRestPrivateEndpoints.js +70 -0
  22. package/getEncryptionAtRestPrivateEndpoints.js.map +1 -0
  23. package/getProject.d.ts +3 -1
  24. package/getProject.js.map +1 -1
  25. package/getProjectIpAddresses.d.ts +75 -0
  26. package/getProjectIpAddresses.js +55 -0
  27. package/getProjectIpAddresses.js.map +1 -0
  28. package/getStreamProcessor.d.ts +74 -0
  29. package/getStreamProcessor.js +35 -0
  30. package/getStreamProcessor.js.map +1 -0
  31. package/getStreamProcessors.d.ts +62 -0
  32. package/getStreamProcessors.js +34 -0
  33. package/getStreamProcessors.js.map +1 -0
  34. package/index.d.ts +24 -0
  35. package/index.js +34 -5
  36. package/index.js.map +1 -1
  37. package/onlineArchive.d.ts +9 -0
  38. package/onlineArchive.js.map +1 -1
  39. package/package.json +2 -2
  40. package/project.d.ts +6 -2
  41. package/project.js.map +1 -1
  42. package/streamProcessor.d.ts +137 -0
  43. package/streamProcessor.js +76 -0
  44. package/streamProcessor.js.map +1 -0
  45. package/types/input.d.ts +66 -16
  46. package/types/output.d.ts +304 -19
@@ -0,0 +1,275 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as outputs from "./types/output";
3
+ /**
4
+ * ## # Data Source: mongodbatlas.EncryptionAtRest
5
+ *
6
+ * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers:
7
+ *
8
+ * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms)
9
+ * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms)
10
+ * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms)
11
+ *
12
+ * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes.
13
+ *
14
+ * > **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
15
+ *
16
+ * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
17
+ *
18
+ * ## Example Usage
19
+ *
20
+ * ### S
21
+ *
22
+ * ### Configuring encryption at rest using customer key management in AWS
23
+ * ```typescript
24
+ * import * as pulumi from "@pulumi/pulumi";
25
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
26
+ *
27
+ * const setupOnly = new mongodbatlas.CloudProviderAccessSetup("setup_only", {
28
+ * projectId: atlasProjectId,
29
+ * providerName: "AWS",
30
+ * });
31
+ * const authRole = new mongodbatlas.CloudProviderAccessAuthorization("auth_role", {
32
+ * projectId: atlasProjectId,
33
+ * roleId: setupOnly.roleId,
34
+ * aws: {
35
+ * iamAssumedRoleArn: testRole.arn,
36
+ * },
37
+ * });
38
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
39
+ * projectId: atlasProjectId,
40
+ * awsKmsConfig: {
41
+ * enabled: true,
42
+ * customerMasterKeyId: kmsKey.id,
43
+ * region: atlasRegion,
44
+ * roleId: authRole.roleId,
45
+ * },
46
+ * });
47
+ * const cluster = new mongodbatlas.AdvancedCluster("cluster", {
48
+ * projectId: testEncryptionAtRest.projectId,
49
+ * name: "MyCluster",
50
+ * clusterType: "REPLICASET",
51
+ * backupEnabled: true,
52
+ * encryptionAtRestProvider: "AWS",
53
+ * replicationSpecs: [{
54
+ * regionConfigs: [{
55
+ * priority: 7,
56
+ * providerName: "AWS",
57
+ * regionName: "US_EAST_1",
58
+ * electableSpecs: {
59
+ * instanceSize: "M10",
60
+ * nodeCount: 3,
61
+ * },
62
+ * }],
63
+ * }],
64
+ * });
65
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
66
+ * projectId: testEncryptionAtRest.projectId,
67
+ * });
68
+ * export const isAwsKmsEncryptionAtRestValid = test.apply(test => test.awsKmsConfig?.valid);
69
+ * ```
70
+ *
71
+ * ### Configuring encryption at rest using customer key management in Azure
72
+ * ```typescript
73
+ * import * as pulumi from "@pulumi/pulumi";
74
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
75
+ *
76
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
77
+ * projectId: atlasProjectId,
78
+ * azureKeyVaultConfig: {
79
+ * enabled: true,
80
+ * azureEnvironment: "AZURE",
81
+ * tenantId: azureTenantId,
82
+ * subscriptionId: azureSubscriptionId,
83
+ * clientId: azureClientId,
84
+ * secret: azureClientSecret,
85
+ * resourceGroupName: azureResourceGroupName,
86
+ * keyVaultName: azureKeyVaultName,
87
+ * keyIdentifier: azureKeyIdentifier,
88
+ * },
89
+ * });
90
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
91
+ * projectId: testEncryptionAtRest.projectId,
92
+ * });
93
+ * export const isAzureEncryptionAtRestValid = test.apply(test => test.azureKeyVaultConfig?.valid);
94
+ * ```
95
+ *
96
+ * > **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.
97
+ *
98
+ * ### Configuring encryption at rest using customer key management in GCP
99
+ * ```typescript
100
+ * import * as pulumi from "@pulumi/pulumi";
101
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
102
+ *
103
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
104
+ * projectId: atlasProjectId,
105
+ * googleCloudKmsConfig: {
106
+ * enabled: true,
107
+ * 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\"}",
108
+ * keyVersionResourceId: "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1",
109
+ * },
110
+ * });
111
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
112
+ * projectId: testEncryptionAtRest.projectId,
113
+ * });
114
+ * export const isGcpEncryptionAtRestValid = test.apply(test => test.googleCloudKmsConfig?.valid);
115
+ * ```
116
+ */
117
+ export declare function getEncryptionAtRest(args: GetEncryptionAtRestArgs, opts?: pulumi.InvokeOptions): Promise<GetEncryptionAtRestResult>;
118
+ /**
119
+ * A collection of arguments for invoking getEncryptionAtRest.
120
+ */
121
+ export interface GetEncryptionAtRestArgs {
122
+ /**
123
+ * Unique 24-hexadecimal digit string that identifies your project.
124
+ */
125
+ projectId: string;
126
+ }
127
+ /**
128
+ * A collection of values returned by getEncryptionAtRest.
129
+ */
130
+ export interface GetEncryptionAtRestResult {
131
+ /**
132
+ * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.
133
+ */
134
+ readonly awsKmsConfig: outputs.GetEncryptionAtRestAwsKmsConfig;
135
+ /**
136
+ * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).
137
+ */
138
+ readonly azureKeyVaultConfig: outputs.GetEncryptionAtRestAzureKeyVaultConfig;
139
+ /**
140
+ * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).
141
+ */
142
+ readonly googleCloudKmsConfig: outputs.GetEncryptionAtRestGoogleCloudKmsConfig;
143
+ /**
144
+ * The ID of this resource.
145
+ */
146
+ readonly id: string;
147
+ /**
148
+ * Unique 24-hexadecimal digit string that identifies your project.
149
+ */
150
+ readonly projectId: string;
151
+ }
152
+ /**
153
+ * ## # Data Source: mongodbatlas.EncryptionAtRest
154
+ *
155
+ * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers:
156
+ *
157
+ * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms)
158
+ * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms)
159
+ * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms)
160
+ *
161
+ * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes.
162
+ *
163
+ * > **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
164
+ *
165
+ * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
166
+ *
167
+ * ## Example Usage
168
+ *
169
+ * ### S
170
+ *
171
+ * ### Configuring encryption at rest using customer key management in AWS
172
+ * ```typescript
173
+ * import * as pulumi from "@pulumi/pulumi";
174
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
175
+ *
176
+ * const setupOnly = new mongodbatlas.CloudProviderAccessSetup("setup_only", {
177
+ * projectId: atlasProjectId,
178
+ * providerName: "AWS",
179
+ * });
180
+ * const authRole = new mongodbatlas.CloudProviderAccessAuthorization("auth_role", {
181
+ * projectId: atlasProjectId,
182
+ * roleId: setupOnly.roleId,
183
+ * aws: {
184
+ * iamAssumedRoleArn: testRole.arn,
185
+ * },
186
+ * });
187
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
188
+ * projectId: atlasProjectId,
189
+ * awsKmsConfig: {
190
+ * enabled: true,
191
+ * customerMasterKeyId: kmsKey.id,
192
+ * region: atlasRegion,
193
+ * roleId: authRole.roleId,
194
+ * },
195
+ * });
196
+ * const cluster = new mongodbatlas.AdvancedCluster("cluster", {
197
+ * projectId: testEncryptionAtRest.projectId,
198
+ * name: "MyCluster",
199
+ * clusterType: "REPLICASET",
200
+ * backupEnabled: true,
201
+ * encryptionAtRestProvider: "AWS",
202
+ * replicationSpecs: [{
203
+ * regionConfigs: [{
204
+ * priority: 7,
205
+ * providerName: "AWS",
206
+ * regionName: "US_EAST_1",
207
+ * electableSpecs: {
208
+ * instanceSize: "M10",
209
+ * nodeCount: 3,
210
+ * },
211
+ * }],
212
+ * }],
213
+ * });
214
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
215
+ * projectId: testEncryptionAtRest.projectId,
216
+ * });
217
+ * export const isAwsKmsEncryptionAtRestValid = test.apply(test => test.awsKmsConfig?.valid);
218
+ * ```
219
+ *
220
+ * ### Configuring encryption at rest using customer key management in Azure
221
+ * ```typescript
222
+ * import * as pulumi from "@pulumi/pulumi";
223
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
224
+ *
225
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
226
+ * projectId: atlasProjectId,
227
+ * azureKeyVaultConfig: {
228
+ * enabled: true,
229
+ * azureEnvironment: "AZURE",
230
+ * tenantId: azureTenantId,
231
+ * subscriptionId: azureSubscriptionId,
232
+ * clientId: azureClientId,
233
+ * secret: azureClientSecret,
234
+ * resourceGroupName: azureResourceGroupName,
235
+ * keyVaultName: azureKeyVaultName,
236
+ * keyIdentifier: azureKeyIdentifier,
237
+ * },
238
+ * });
239
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
240
+ * projectId: testEncryptionAtRest.projectId,
241
+ * });
242
+ * export const isAzureEncryptionAtRestValid = test.apply(test => test.azureKeyVaultConfig?.valid);
243
+ * ```
244
+ *
245
+ * > **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.
246
+ *
247
+ * ### Configuring encryption at rest using customer key management in GCP
248
+ * ```typescript
249
+ * import * as pulumi from "@pulumi/pulumi";
250
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
251
+ *
252
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
253
+ * projectId: atlasProjectId,
254
+ * googleCloudKmsConfig: {
255
+ * enabled: true,
256
+ * 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\"}",
257
+ * keyVersionResourceId: "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1",
258
+ * },
259
+ * });
260
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
261
+ * projectId: testEncryptionAtRest.projectId,
262
+ * });
263
+ * export const isGcpEncryptionAtRestValid = test.apply(test => test.googleCloudKmsConfig?.valid);
264
+ * ```
265
+ */
266
+ export declare function getEncryptionAtRestOutput(args: GetEncryptionAtRestOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetEncryptionAtRestResult>;
267
+ /**
268
+ * A collection of arguments for invoking getEncryptionAtRest.
269
+ */
270
+ export interface GetEncryptionAtRestOutputArgs {
271
+ /**
272
+ * Unique 24-hexadecimal digit string that identifies your project.
273
+ */
274
+ projectId: pulumi.Input<string>;
275
+ }
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getEncryptionAtRestOutput = exports.getEncryptionAtRest = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * ## # Data Source: mongodbatlas.EncryptionAtRest
10
+ *
11
+ * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers:
12
+ *
13
+ * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms)
14
+ * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms)
15
+ * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms)
16
+ *
17
+ * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes.
18
+ *
19
+ * > **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
20
+ *
21
+ * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
22
+ *
23
+ * ## Example Usage
24
+ *
25
+ * ### S
26
+ *
27
+ * ### Configuring encryption at rest using customer key management in AWS
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
31
+ *
32
+ * const setupOnly = new mongodbatlas.CloudProviderAccessSetup("setup_only", {
33
+ * projectId: atlasProjectId,
34
+ * providerName: "AWS",
35
+ * });
36
+ * const authRole = new mongodbatlas.CloudProviderAccessAuthorization("auth_role", {
37
+ * projectId: atlasProjectId,
38
+ * roleId: setupOnly.roleId,
39
+ * aws: {
40
+ * iamAssumedRoleArn: testRole.arn,
41
+ * },
42
+ * });
43
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
44
+ * projectId: atlasProjectId,
45
+ * awsKmsConfig: {
46
+ * enabled: true,
47
+ * customerMasterKeyId: kmsKey.id,
48
+ * region: atlasRegion,
49
+ * roleId: authRole.roleId,
50
+ * },
51
+ * });
52
+ * const cluster = new mongodbatlas.AdvancedCluster("cluster", {
53
+ * projectId: testEncryptionAtRest.projectId,
54
+ * name: "MyCluster",
55
+ * clusterType: "REPLICASET",
56
+ * backupEnabled: true,
57
+ * encryptionAtRestProvider: "AWS",
58
+ * replicationSpecs: [{
59
+ * regionConfigs: [{
60
+ * priority: 7,
61
+ * providerName: "AWS",
62
+ * regionName: "US_EAST_1",
63
+ * electableSpecs: {
64
+ * instanceSize: "M10",
65
+ * nodeCount: 3,
66
+ * },
67
+ * }],
68
+ * }],
69
+ * });
70
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
71
+ * projectId: testEncryptionAtRest.projectId,
72
+ * });
73
+ * export const isAwsKmsEncryptionAtRestValid = test.apply(test => test.awsKmsConfig?.valid);
74
+ * ```
75
+ *
76
+ * ### Configuring encryption at rest using customer key management in Azure
77
+ * ```typescript
78
+ * import * as pulumi from "@pulumi/pulumi";
79
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
80
+ *
81
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
82
+ * projectId: atlasProjectId,
83
+ * azureKeyVaultConfig: {
84
+ * enabled: true,
85
+ * azureEnvironment: "AZURE",
86
+ * tenantId: azureTenantId,
87
+ * subscriptionId: azureSubscriptionId,
88
+ * clientId: azureClientId,
89
+ * secret: azureClientSecret,
90
+ * resourceGroupName: azureResourceGroupName,
91
+ * keyVaultName: azureKeyVaultName,
92
+ * keyIdentifier: azureKeyIdentifier,
93
+ * },
94
+ * });
95
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
96
+ * projectId: testEncryptionAtRest.projectId,
97
+ * });
98
+ * export const isAzureEncryptionAtRestValid = test.apply(test => test.azureKeyVaultConfig?.valid);
99
+ * ```
100
+ *
101
+ * > **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.
102
+ *
103
+ * ### Configuring encryption at rest using customer key management in GCP
104
+ * ```typescript
105
+ * import * as pulumi from "@pulumi/pulumi";
106
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
107
+ *
108
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
109
+ * projectId: atlasProjectId,
110
+ * googleCloudKmsConfig: {
111
+ * enabled: true,
112
+ * 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\"}",
113
+ * keyVersionResourceId: "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1",
114
+ * },
115
+ * });
116
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
117
+ * projectId: testEncryptionAtRest.projectId,
118
+ * });
119
+ * export const isGcpEncryptionAtRestValid = test.apply(test => test.googleCloudKmsConfig?.valid);
120
+ * ```
121
+ */
122
+ function getEncryptionAtRest(args, opts) {
123
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
124
+ return pulumi.runtime.invoke("mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest", {
125
+ "projectId": args.projectId,
126
+ }, opts);
127
+ }
128
+ exports.getEncryptionAtRest = getEncryptionAtRest;
129
+ /**
130
+ * ## # Data Source: mongodbatlas.EncryptionAtRest
131
+ *
132
+ * `mongodbatlas.EncryptionAtRest` describes encryption at rest configuration for an Atlas project with one of the following providers:
133
+ *
134
+ * [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms)
135
+ * [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms)
136
+ * [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms)
137
+ *
138
+ * > **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes.
139
+ *
140
+ * > **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
141
+ *
142
+ * > **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.
143
+ *
144
+ * ## Example Usage
145
+ *
146
+ * ### S
147
+ *
148
+ * ### Configuring encryption at rest using customer key management in AWS
149
+ * ```typescript
150
+ * import * as pulumi from "@pulumi/pulumi";
151
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
152
+ *
153
+ * const setupOnly = new mongodbatlas.CloudProviderAccessSetup("setup_only", {
154
+ * projectId: atlasProjectId,
155
+ * providerName: "AWS",
156
+ * });
157
+ * const authRole = new mongodbatlas.CloudProviderAccessAuthorization("auth_role", {
158
+ * projectId: atlasProjectId,
159
+ * roleId: setupOnly.roleId,
160
+ * aws: {
161
+ * iamAssumedRoleArn: testRole.arn,
162
+ * },
163
+ * });
164
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
165
+ * projectId: atlasProjectId,
166
+ * awsKmsConfig: {
167
+ * enabled: true,
168
+ * customerMasterKeyId: kmsKey.id,
169
+ * region: atlasRegion,
170
+ * roleId: authRole.roleId,
171
+ * },
172
+ * });
173
+ * const cluster = new mongodbatlas.AdvancedCluster("cluster", {
174
+ * projectId: testEncryptionAtRest.projectId,
175
+ * name: "MyCluster",
176
+ * clusterType: "REPLICASET",
177
+ * backupEnabled: true,
178
+ * encryptionAtRestProvider: "AWS",
179
+ * replicationSpecs: [{
180
+ * regionConfigs: [{
181
+ * priority: 7,
182
+ * providerName: "AWS",
183
+ * regionName: "US_EAST_1",
184
+ * electableSpecs: {
185
+ * instanceSize: "M10",
186
+ * nodeCount: 3,
187
+ * },
188
+ * }],
189
+ * }],
190
+ * });
191
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
192
+ * projectId: testEncryptionAtRest.projectId,
193
+ * });
194
+ * export const isAwsKmsEncryptionAtRestValid = test.apply(test => test.awsKmsConfig?.valid);
195
+ * ```
196
+ *
197
+ * ### Configuring encryption at rest using customer key management in Azure
198
+ * ```typescript
199
+ * import * as pulumi from "@pulumi/pulumi";
200
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
201
+ *
202
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
203
+ * projectId: atlasProjectId,
204
+ * azureKeyVaultConfig: {
205
+ * enabled: true,
206
+ * azureEnvironment: "AZURE",
207
+ * tenantId: azureTenantId,
208
+ * subscriptionId: azureSubscriptionId,
209
+ * clientId: azureClientId,
210
+ * secret: azureClientSecret,
211
+ * resourceGroupName: azureResourceGroupName,
212
+ * keyVaultName: azureKeyVaultName,
213
+ * keyIdentifier: azureKeyIdentifier,
214
+ * },
215
+ * });
216
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
217
+ * projectId: testEncryptionAtRest.projectId,
218
+ * });
219
+ * export const isAzureEncryptionAtRestValid = test.apply(test => test.azureKeyVaultConfig?.valid);
220
+ * ```
221
+ *
222
+ * > **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.
223
+ *
224
+ * ### Configuring encryption at rest using customer key management in GCP
225
+ * ```typescript
226
+ * import * as pulumi from "@pulumi/pulumi";
227
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
228
+ *
229
+ * const testEncryptionAtRest = new mongodbatlas.EncryptionAtRest("test", {
230
+ * projectId: atlasProjectId,
231
+ * googleCloudKmsConfig: {
232
+ * enabled: true,
233
+ * 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\"}",
234
+ * keyVersionResourceId: "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1",
235
+ * },
236
+ * });
237
+ * const test = mongodbatlas.getEncryptionAtRestOutput({
238
+ * projectId: testEncryptionAtRest.projectId,
239
+ * });
240
+ * export const isGcpEncryptionAtRestValid = test.apply(test => test.googleCloudKmsConfig?.valid);
241
+ * ```
242
+ */
243
+ function getEncryptionAtRestOutput(args, opts) {
244
+ return pulumi.output(args).apply((a) => getEncryptionAtRest(a, opts));
245
+ }
246
+ exports.getEncryptionAtRestOutput = getEncryptionAtRestOutput;
247
+ //# sourceMappingURL=getEncryptionAtRest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEncryptionAtRest.js","sourceRoot":"","sources":["../getEncryptionAtRest.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,SAAgB,mBAAmB,CAAC,IAA6B,EAAE,IAA2B;IAE1F,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,4DAA4D,EAAE;QACvF,WAAW,EAAE,IAAI,CAAC,SAAS;KAC9B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAND,kDAMC;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,SAAgB,yBAAyB,CAAC,IAAmC,EAAE,IAA2B;IACtG,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AAC9E,CAAC;AAFD,8DAEC"}
@@ -0,0 +1,122 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint
4
+ *
5
+ * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys.
6
+ *
7
+ * > **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.
8
+ * 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).
9
+ *
10
+ * ## Example Usage
11
+ *
12
+ * ### S
13
+ *
14
+ * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
19
+ *
20
+ * const single = mongodbatlas.getEncryptionAtRestPrivateEndpoint({
21
+ * projectId: atlasProjectId,
22
+ * cloudProvider: "AZURE",
23
+ * id: endpoint.id,
24
+ * });
25
+ * export const endpointConnectionName = single.then(single => single.privateEndpointConnectionName);
26
+ * ```
27
+ */
28
+ export declare function getEncryptionAtRestPrivateEndpoint(args: GetEncryptionAtRestPrivateEndpointArgs, opts?: pulumi.InvokeOptions): Promise<GetEncryptionAtRestPrivateEndpointResult>;
29
+ /**
30
+ * A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint.
31
+ */
32
+ export interface GetEncryptionAtRestPrivateEndpointArgs {
33
+ /**
34
+ * Label that identifies the cloud provider of the private endpoint.
35
+ */
36
+ cloudProvider: string;
37
+ /**
38
+ * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service.
39
+ */
40
+ id: string;
41
+ /**
42
+ * Unique 24-hexadecimal digit string that identifies your project.
43
+ */
44
+ projectId: string;
45
+ }
46
+ /**
47
+ * A collection of values returned by getEncryptionAtRestPrivateEndpoint.
48
+ */
49
+ export interface GetEncryptionAtRestPrivateEndpointResult {
50
+ /**
51
+ * Label that identifies the cloud provider of the private endpoint.
52
+ */
53
+ readonly cloudProvider: string;
54
+ /**
55
+ * Error message for failures associated with the Encryption At Rest private endpoint.
56
+ */
57
+ readonly errorMessage: string;
58
+ /**
59
+ * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service.
60
+ */
61
+ readonly id: string;
62
+ /**
63
+ * Connection name of the Azure Private Endpoint.
64
+ */
65
+ readonly privateEndpointConnectionName: string;
66
+ /**
67
+ * Unique 24-hexadecimal digit string that identifies your project.
68
+ */
69
+ readonly projectId: string;
70
+ /**
71
+ * Cloud provider region in which the Encryption At Rest private endpoint is located.
72
+ */
73
+ readonly regionName: string;
74
+ /**
75
+ * State of the Encryption At Rest private endpoint.
76
+ */
77
+ readonly status: string;
78
+ }
79
+ /**
80
+ * ## # Data Source: mongodbatlas.EncryptionAtRestPrivateEndpoint
81
+ *
82
+ * `mongodbatlas.EncryptionAtRestPrivateEndpoint` describes a private endpoint used for encryption at rest using customer-managed keys.
83
+ *
84
+ * > **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.
85
+ * 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).
86
+ *
87
+ * ## Example Usage
88
+ *
89
+ * ### S
90
+ *
91
+ * > **NOTE:** Only Azure Key Vault with Azure Private Link is supported at this time.
92
+ *
93
+ * ```typescript
94
+ * import * as pulumi from "@pulumi/pulumi";
95
+ * import * as mongodbatlas from "@pulumi/mongodbatlas";
96
+ *
97
+ * const single = mongodbatlas.getEncryptionAtRestPrivateEndpoint({
98
+ * projectId: atlasProjectId,
99
+ * cloudProvider: "AZURE",
100
+ * id: endpoint.id,
101
+ * });
102
+ * export const endpointConnectionName = single.then(single => single.privateEndpointConnectionName);
103
+ * ```
104
+ */
105
+ export declare function getEncryptionAtRestPrivateEndpointOutput(args: GetEncryptionAtRestPrivateEndpointOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetEncryptionAtRestPrivateEndpointResult>;
106
+ /**
107
+ * A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint.
108
+ */
109
+ export interface GetEncryptionAtRestPrivateEndpointOutputArgs {
110
+ /**
111
+ * Label that identifies the cloud provider of the private endpoint.
112
+ */
113
+ cloudProvider: pulumi.Input<string>;
114
+ /**
115
+ * Unique 24-hexadecimal digit string that identifies the Private Endpoint Service.
116
+ */
117
+ id: pulumi.Input<string>;
118
+ /**
119
+ * Unique 24-hexadecimal digit string that identifies your project.
120
+ */
121
+ projectId: pulumi.Input<string>;
122
+ }