@@ -59,6 +59,49 @@ func TestAccResourceMongoDBAtlasCloudProviderSnapshotBackupPolicy_basic(t *testi
59
59
})
60
60
}
61
61
62
+ func TestAccResourceMongoDBAtlasCloudProviderSnapshotBackupPolicy_withoutRestoreWindowDays (t * testing.T ) {
63
+ var (
64
+ resourceName = "mongodbatlas_cloud_provider_snapshot_backup_policy.test"
65
+ projectID = os .Getenv ("MONGODB_ATLAS_PROJECT_ID" )
66
+ clusterName = fmt .Sprintf ("test-acc-%s" , acctest .RandString (10 ))
67
+ )
68
+
69
+ resource .ParallelTest (t , resource.TestCase {
70
+ PreCheck : func () { testAccPreCheck (t ) },
71
+ Providers : testAccProviders ,
72
+ CheckDestroy : testAccCheckMongoDBAtlasCloudProviderSnapshotBackupPolicyDestroy ,
73
+ Steps : []resource.TestStep {
74
+ {
75
+ Config : testAccMongoDBAtlasCloudProviderSnapshotBackupPolicyConfigWithoutRestoreDays (projectID , clusterName , & matlas.CloudProviderSnapshotBackupPolicy {
76
+ ReferenceHourOfDay : pointy .Int64 (3 ),
77
+ ReferenceMinuteOfHour : pointy .Int64 (45 ),
78
+ }),
79
+ Check : resource .ComposeTestCheckFunc (
80
+ testAccCheckMongoDBAtlasCloudProviderSnapshotBackupPolicyExists (resourceName ),
81
+ resource .TestCheckResourceAttr (resourceName , "project_id" , projectID ),
82
+ resource .TestCheckResourceAttr (resourceName , "cluster_name" , clusterName ),
83
+ resource .TestCheckResourceAttr (resourceName , "reference_hour_of_day" , "3" ),
84
+ resource .TestCheckResourceAttr (resourceName , "reference_minute_of_hour" , "45" ),
85
+ ),
86
+ },
87
+ {
88
+ Config : testAccMongoDBAtlasCloudProviderSnapshotBackupPolicyConfigWithoutRestoreDays (projectID , clusterName , & matlas.CloudProviderSnapshotBackupPolicy {
89
+ ReferenceHourOfDay : pointy .Int64 (0 ),
90
+ ReferenceMinuteOfHour : pointy .Int64 (0 ),
91
+ }),
92
+ Check : resource .ComposeTestCheckFunc (
93
+ testAccCheckMongoDBAtlasCloudProviderSnapshotBackupPolicyExists (resourceName ),
94
+ resource .TestCheckResourceAttr (resourceName , "project_id" , projectID ),
95
+ resource .TestCheckResourceAttr (resourceName , "cluster_name" , clusterName ),
96
+ resource .TestCheckResourceAttr (resourceName , "reference_minute_of_hour" , "0" ),
97
+ resource .TestCheckResourceAttr (resourceName , "reference_hour_of_day" , "0" ),
98
+ resource .TestCheckResourceAttr (resourceName , "restore_window_days" , "7" ),
99
+ ),
100
+ },
101
+ },
102
+ })
103
+ }
104
+
62
105
func TestAccResourceMongoDBAtlasCloudProviderSnapshotBackupPolicy_importBasic (t * testing.T ) {
63
106
SkipTestImport (t )
64
107
var (
@@ -214,3 +257,62 @@ func testAccMongoDBAtlasCloudProviderSnapshotBackupPolicyConfig(projectID, clust
214
257
}
215
258
` , projectID , clusterName , * p .ReferenceHourOfDay , * p .ReferenceMinuteOfHour , * p .RestoreWindowDays )
216
259
}
260
+
261
+ func testAccMongoDBAtlasCloudProviderSnapshotBackupPolicyConfigWithoutRestoreDays (projectID , clusterName string , p * matlas.CloudProviderSnapshotBackupPolicy ) string {
262
+ return fmt .Sprintf (`
263
+ resource "mongodbatlas_cluster" "my_cluster" {
264
+ project_id = "%s"
265
+ name = "%s"
266
+ disk_size_gb = 5
267
+
268
+ // Provider Settings "block"
269
+ provider_name = "AWS"
270
+ provider_region_name = "EU_CENTRAL_1"
271
+ provider_instance_size_name = "M10"
272
+ provider_backup_enabled = true //enable cloud provider snapshots
273
+ provider_disk_iops = 100
274
+ provider_encrypt_ebs_volume = false
275
+ }
276
+
277
+ resource "mongodbatlas_cloud_provider_snapshot_backup_policy" "test" {
278
+ project_id = mongodbatlas_cluster.my_cluster.project_id
279
+ cluster_name = mongodbatlas_cluster.my_cluster.name
280
+
281
+ reference_hour_of_day = %d
282
+ reference_minute_of_hour = %d
283
+
284
+ policies {
285
+ id = mongodbatlas_cluster.my_cluster.snapshot_backup_policy.0.policies.0.id
286
+
287
+ policy_item {
288
+ id = mongodbatlas_cluster.my_cluster.snapshot_backup_policy.0.policies.0.policy_item.0.id
289
+ frequency_interval = 1
290
+ frequency_type = "hourly"
291
+ retention_unit = "days"
292
+ retention_value = 1
293
+ }
294
+ policy_item {
295
+ id = mongodbatlas_cluster.my_cluster.snapshot_backup_policy.0.policies.0.policy_item.1.id
296
+ frequency_interval = 1
297
+ frequency_type = "daily"
298
+ retention_unit = "days"
299
+ retention_value = 2
300
+ }
301
+ policy_item {
302
+ id = mongodbatlas_cluster.my_cluster.snapshot_backup_policy.0.policies.0.policy_item.2.id
303
+ frequency_interval = 4
304
+ frequency_type = "weekly"
305
+ retention_unit = "weeks"
306
+ retention_value = 3
307
+ }
308
+ policy_item {
309
+ id = mongodbatlas_cluster.my_cluster.snapshot_backup_policy.0.policies.0.policy_item.3.id
310
+ frequency_interval = 5
311
+ frequency_type = "monthly"
312
+ retention_unit = "months"
313
+ retention_value = 4
314
+ }
315
+ }
316
+ }
317
+ ` , projectID , clusterName , * p .ReferenceHourOfDay , * p .ReferenceMinuteOfHour )
318
+ }
0 commit comments