resource "minio_s3_bucket" "this" { bucket = var.name acl = "private" } resource "minio_s3_bucket_versioning" "this" { count = var.versioning ? 1 : 0 bucket = minio_s3_bucket.this.bucket versioning_configuration { status = "Enabled" } } resource "minio_ilm_policy" "this" { bucket = minio_s3_bucket.this.bucket rule { id = "cleanup" status = "Enabled" expiration = var.expire_days == null ? null : "${var.expire_days}d" dynamic "noncurrent_expiration" { for_each = var.versioning ? [1] : [] content { days = "${var.noncurrent_days}d" } } expired_object_delete_marker = var.versioning && var.expire_days == null abort_incomplete_multipart_upload { days_after_initiation = "3d" } } }