From a47fac0ae74bfc4d350cdff6efa856cef81b9340 Mon Sep 17 00:00:00 2001 From: Marcel Jacek <72880145+marceljk@users.noreply.github.com> Date: Fri, 23 May 2025 14:06:13 +0200 Subject: [PATCH] feat(mongodb): set point_in_time_window_hours as required (#860) * feat(mongodb): set point_in_time_window_hours as required * docs update --- docs/resources/mongodbflex_instance.md | 9 +++++---- .../resources/stackit_mongodbflex_instance/resource.tf | 7 ++++--- .../internal/services/mongodbflex/instance/resource.go | 3 +-- .../services/mongodbflex/mongodbflex_acc_test.go | 6 ++++++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/docs/resources/mongodbflex_instance.md b/docs/resources/mongodbflex_instance.md index 971e7957..e0dc6a17 100644 --- a/docs/resources/mongodbflex_instance.md +++ b/docs/resources/mongodbflex_instance.md @@ -19,7 +19,7 @@ resource "stackit_mongodbflex_instance" "example" { acl = ["XXX.XXX.XXX.X/XX", "XX.XXX.XX.X/XX"] flavor = { cpu = 1 - ram = 8 + ram = 4 } replicas = 1 storage = { @@ -28,8 +28,9 @@ resource "stackit_mongodbflex_instance" "example" { } version = "7.0" options = { - type = "Single" - snapshot_retention_days = 3 + type = "Single" + snapshot_retention_days = 3 + point_in_time_window_hours = 30 } backup_schedule = "0 0 * * *" } @@ -74,13 +75,13 @@ Read-Only: Required: +- `point_in_time_window_hours` (Number) The number of hours back in time the point-in-time recovery feature will be able to recover. - `type` (String) Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. Optional: - `daily_snapshot_retention_days` (Number) The number of days that daily backups will be retained. - `monthly_snapshot_retention_months` (Number) The number of months that monthly backups will be retained. -- `point_in_time_window_hours` (Number) The number of hours back in time the point-in-time recovery feature will be able to recover. - `snapshot_retention_days` (Number) The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. - `weekly_snapshot_retention_weeks` (Number) The number of weeks that weekly backups will be retained. diff --git a/examples/resources/stackit_mongodbflex_instance/resource.tf b/examples/resources/stackit_mongodbflex_instance/resource.tf index eaf16e62..f65dcdef 100644 --- a/examples/resources/stackit_mongodbflex_instance/resource.tf +++ b/examples/resources/stackit_mongodbflex_instance/resource.tf @@ -4,7 +4,7 @@ resource "stackit_mongodbflex_instance" "example" { acl = ["XXX.XXX.XXX.X/XX", "XX.XXX.XX.X/XX"] flavor = { cpu = 1 - ram = 8 + ram = 4 } replicas = 1 storage = { @@ -13,8 +13,9 @@ resource "stackit_mongodbflex_instance" "example" { } version = "7.0" options = { - type = "Single" - snapshot_retention_days = 3 + type = "Single" + snapshot_retention_days = 3 + point_in_time_window_hours = 30 } backup_schedule = "0 0 * * *" } diff --git a/stackit/internal/services/mongodbflex/instance/resource.go b/stackit/internal/services/mongodbflex/instance/resource.go index 979cfa04..68932304 100644 --- a/stackit/internal/services/mongodbflex/instance/resource.go +++ b/stackit/internal/services/mongodbflex/instance/resource.go @@ -291,8 +291,7 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r }, "point_in_time_window_hours": schema.Int64Attribute{ Description: descriptions["point_in_time_window_hours"], - Optional: true, - Computed: true, + Required: true, PlanModifiers: []planmodifier.Int64{ int64planmodifier.UseStateForUnknown(), }, diff --git a/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go b/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go index fe780def..97776e2c 100644 --- a/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go +++ b/stackit/internal/services/mongodbflex/mongodbflex_acc_test.go @@ -39,6 +39,7 @@ var instanceResource = map[string]string{ "snapshot_retention_days": "4", "snapshot_retention_days_updated": "3", "daily_snapshot_retention_days": "1", + "point_in_time_window_hours": "30", } // User resource data @@ -71,6 +72,7 @@ func configResources(version, backupSchedule, snapshotRetentionDays string) stri type = "%s" snapshot_retention_days = %s daily_snapshot_retention_days = %s + point_in_time_window_hours = %s } backup_schedule = "%s" } @@ -96,6 +98,7 @@ func configResources(version, backupSchedule, snapshotRetentionDays string) stri instanceResource["options_type"], snapshotRetentionDays, instanceResource["daily_snapshot_retention_days"], + instanceResource["point_in_time_window_hours"], backupSchedule, userResource["username"], userResource["role"], @@ -129,6 +132,7 @@ func TestAccMongoDBFlexFlexResource(t *testing.T) { resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.type", instanceResource["options_type"]), resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.snapshot_retention_days", instanceResource["snapshot_retention_days"]), resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.daily_snapshot_retention_days", instanceResource["daily_snapshot_retention_days"]), + resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.point_in_time_window_hours", instanceResource["point_in_time_window_hours"]), resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "backup_schedule", instanceResource["backup_schedule"]), // User @@ -191,6 +195,7 @@ func TestAccMongoDBFlexFlexResource(t *testing.T) { resource.TestCheckResourceAttr("data.stackit_mongodbflex_instance.instance", "options.type", instanceResource["options_type"]), resource.TestCheckResourceAttr("data.stackit_mongodbflex_instance.instance", "options.snapshot_retention_days", instanceResource["snapshot_retention_days"]), resource.TestCheckResourceAttr("data.stackit_mongodbflex_instance.instance", "options.daily_snapshot_retention_days", instanceResource["daily_snapshot_retention_days"]), + resource.TestCheckResourceAttr("data.stackit_mongodbflex_instance.instance", "options.point_in_time_window_hours", instanceResource["point_in_time_window_hours"]), resource.TestCheckResourceAttr("data.stackit_mongodbflex_instance.instance", "backup_schedule", instanceResource["backup_schedule_read"]), // User data @@ -274,6 +279,7 @@ func TestAccMongoDBFlexFlexResource(t *testing.T) { resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "version", instanceResource["version_updated"]), resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.type", instanceResource["options_type"]), resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.snapshot_retention_days", instanceResource["snapshot_retention_days_updated"]), + resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "options.point_in_time_window_hours", instanceResource["point_in_time_window_hours"]), resource.TestCheckResourceAttr("stackit_mongodbflex_instance.instance", "backup_schedule", instanceResource["backup_schedule_updated"]), ), },