modules/snapshot-policy/main.snapshot-policy.tf (51 lines of code) (raw):

resource "azapi_resource" "anf_snapshot_policy" { type = "Microsoft.NetApp/netAppAccounts/snapshotPolicies@2024-07-01" body = { properties = { enabled = var.enabled hourlySchedule = var.hourly_schedule != null ? { snapshotsToKeep = var.hourly_schedule.snapshots_to_keep minute = var.hourly_schedule.minute } : { snapshotsToKeep = null minute = null } dailySchedule = var.daily_schedule != null ? { snapshotsToKeep = var.daily_schedule.snapshots_to_keep hour = var.daily_schedule.hour minute = var.daily_schedule.minute } : { snapshotsToKeep = null hour = null minute = null } weeklySchedule = var.weekly_schedule != null ? { snapshotsToKeep = var.weekly_schedule.snapshots_to_keep day = local.weekly_schedule_day minute = var.weekly_schedule.minute hour = var.weekly_schedule.hour } : { snapshotsToKeep = null day = null minute = null hour = null } monthlySchedule = var.monthly_schedule != null ? { snapshotsToKeep = var.monthly_schedule.snapshots_to_keep daysOfMonth = local.monthly_schedule_days_of_month hour = var.monthly_schedule.hour minute = var.monthly_schedule.minute } : { snapshotsToKeep = null daysOfMonth = null hour = null minute = null } } } location = var.location name = var.name parent_id = var.account.resource_id schema_validation_enabled = false tags = var.tags }