Enhance Azure Storage Account module with additional variables and blob data protection features

This commit is contained in:
2026-02-28 22:10:38 +01:00
parent aa63e41b55
commit 0c86d10d4d
3 changed files with 143 additions and 2 deletions

View File

@@ -44,6 +44,100 @@ variable "public_network_access_enabled" {
default = true
}
variable "enable_blob_soft_delete" {
type = bool
default = false
}
variable "blob_soft_delete_retention_days" {
type = number
default = null
validation {
condition = (
var.enable_blob_soft_delete == false ||
var.blob_soft_delete_retention_days == null ||
(var.blob_soft_delete_retention_days >= 1 && var.blob_soft_delete_retention_days <= 365)
)
error_message = "blob_soft_delete_retention_days must be between 1 and 365."
}
}
variable "enable_container_soft_delete" {
type = bool
default = false
}
variable "container_soft_delete_retention_days" {
type = number
default = null
validation {
condition = (
var.enable_container_soft_delete == false ||
var.container_soft_delete_retention_days == null ||
(var.container_soft_delete_retention_days >= 1 && var.container_soft_delete_retention_days <= 365)
)
error_message = "container_soft_delete_retention_days must be between 1 and 365."
}
}
variable "enable_blob_versioning" {
type = bool
default = false
}
variable "enable_blob_change_feed" {
type = bool
default = false
}
variable "enable_point_in_time_restore_for_containers" {
type = bool
default = false
validation {
condition = (
var.enable_point_in_time_restore_for_containers == false ||
(
var.enable_blob_soft_delete &&
var.enable_blob_versioning &&
var.enable_blob_change_feed
)
)
error_message = "enable_point_in_time_restore_for_containers requires enable_blob_soft_delete, enable_blob_versioning, and enable_blob_change_feed to be true."
}
}
variable "point_in_time_restore_days" {
type = number
default = null
validation {
condition = (
var.enable_point_in_time_restore_for_containers == false ||
var.point_in_time_restore_days != null
)
error_message = "point_in_time_restore_days must be set when enable_point_in_time_restore_for_containers is true."
}
validation {
condition = (
var.enable_point_in_time_restore_for_containers == false ||
(var.point_in_time_restore_days >= 1 && var.point_in_time_restore_days <= 365)
)
error_message = "point_in_time_restore_days must be between 1 and 365."
}
validation {
condition = (
var.enable_point_in_time_restore_for_containers == false ||
var.point_in_time_restore_days < coalesce(var.blob_soft_delete_retention_days, 7)
)
error_message = "point_in_time_restore_days must be less than blob_soft_delete_retention_days."
}
}
variable "tags" {
type = map(string)
default = {}