diff --git a/fast/stages/0-org-setup/schemas/project.schema.json b/fast/stages/0-org-setup/schemas/project.schema.json
index 4f06e12e7..bf454c8f8 100644
--- a/fast/stages/0-org-setup/schemas/project.schema.json
+++ b/fast/stages/0-org-setup/schemas/project.schema.json
@@ -617,6 +617,21 @@
},
"versioning": {
"type": "boolean"
+ },
+ "retention_policy": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "retention_period": {
+ "type": "number"
+ },
+ "is_locked": {
+ "type": "boolean"
+ }
+ }
+ },
+ "enable_object_retention": {
+ "type": "boolean"
}
}
},
diff --git a/fast/stages/0-org-setup/schemas/project.schema.md b/fast/stages/0-org-setup/schemas/project.schema.md
index 8f88ebd99..6915ddb0b 100644
--- a/fast/stages/0-org-setup/schemas/project.schema.md
+++ b/fast/stages/0-org-setup/schemas/project.schema.md
@@ -175,6 +175,11 @@
- **storage_class**: *string*
- **uniform_bucket_level_access**: *boolean*
- **versioning**: *boolean*
+ - **retention_policy**: *object*
+
*additional properties: false*
+ - **retention_period**: *number*
+ - **is_locked**: *boolean*
+ - **enable_object_retention**: *boolean*
- **buckets**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
diff --git a/fast/stages/2-project-factory/schemas/project.schema.md b/fast/stages/2-project-factory/schemas/project.schema.md
index 900523134..40ce965d1 100644
--- a/fast/stages/2-project-factory/schemas/project.schema.md
+++ b/fast/stages/2-project-factory/schemas/project.schema.md
@@ -172,6 +172,11 @@
- **storage_class**: *string*
- **uniform_bucket_level_access**: *boolean*
- **versioning**: *boolean*
+ - **retention_policy**: *object*
+
*additional properties: false*
+ - **retention_period**: *number*
+ - **is_locked**: *boolean*
+ - **enable_object_retention**: *boolean*
- **buckets**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*
diff --git a/modules/project-factory/projects-buckets.tf b/modules/project-factory/projects-buckets.tf
index 91d6d3ac6..b2ad2d8b0 100644
--- a/modules/project-factory/projects-buckets.tf
+++ b/modules/project-factory/projects-buckets.tf
@@ -50,6 +50,8 @@ locals {
versioning = lookup(
opts, "versioning", false
)
+ retention_policy = lookup(opts, "retention_policy", null)
+ enable_object_retention = lookup(opts, "enable_object_retention", null)
}
]
])
@@ -89,4 +91,6 @@ module "buckets" {
storage_class = each.value.storage_class
uniform_bucket_level_access = each.value.uniform_bucket_level_access
versioning = each.value.versioning
+ retention_policy = each.value.retention_policy
+ enable_object_retention = each.value.enable_object_retention
}
diff --git a/modules/project-factory/schemas/project.schema.json b/modules/project-factory/schemas/project.schema.json
index 1a326aa52..baf129a1e 100644
--- a/modules/project-factory/schemas/project.schema.json
+++ b/modules/project-factory/schemas/project.schema.json
@@ -620,6 +620,21 @@
},
"versioning": {
"type": "boolean"
+ },
+ "retention_policy": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "retention_period": {
+ "type": "number"
+ },
+ "is_locked": {
+ "type": "boolean"
+ }
+ }
+ },
+ "enable_object_retention": {
+ "type": "boolean"
}
}
},
diff --git a/modules/project-factory/schemas/project.schema.md b/modules/project-factory/schemas/project.schema.md
index baf3df987..c013c7d02 100644
--- a/modules/project-factory/schemas/project.schema.md
+++ b/modules/project-factory/schemas/project.schema.md
@@ -178,6 +178,11 @@
- **storage_class**: *string*
- **uniform_bucket_level_access**: *boolean*
- **versioning**: *boolean*
+ - **retention_policy**: *object*
+
*additional properties: false*
+ - **retention_period**: *number*
+ - **is_locked**: *boolean*
+ - **enable_object_retention**: *boolean*
- **buckets**: *object*
*additional properties: false*
- **`^[a-z0-9-]+$`**: *reference([bucket](#refs-bucket))*