From c3da34630430c3d4f1a038b63f3f7449dd4fc27f Mon Sep 17 00:00:00 2001 From: Harika-Ponna Date: Wed, 12 Nov 2025 18:02:50 +0530 Subject: [PATCH 1/3] fix : updated "add_bucket_name_suffix" var to true --- modules/buckets/README.md | 2 +- modules/buckets/variables.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/buckets/README.md b/modules/buckets/README.md index 155bf2cf..01ea2f5b 100644 --- a/modules/buckets/README.md +++ b/modules/buckets/README.md @@ -82,7 +82,7 @@ You need the following permissions to run this module. | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| -| [bucket\_configs](#input\_bucket\_configs) | The Object Storage bucket configurations. |
list(object({
access_tags = optional(list(string), [])
add_bucket_name_suffix = optional(bool, false)
bucket_name = string
kms_encryption_enabled = optional(bool, true)
kms_guid = optional(string, null)
kms_key_crn = optional(string, null)
skip_iam_authorization_policy = optional(bool, false)
management_endpoint_type = optional(string, "public")
cross_region_location = optional(string, null)
storage_class = optional(string, "smart")
region_location = optional(string, null)
resource_instance_id = string
force_delete = optional(bool, true)
single_site_location = optional(string, null)
hard_quota = optional(number, null)
object_locking_enabled = optional(bool, false)
object_lock_duration_days = optional(number, 0)
object_lock_duration_years = optional(number, 0)

activity_tracking = optional(object({
read_data_events = optional(bool, true)
write_data_events = optional(bool, true)
management_events = optional(bool, true)
}))
archive_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
type = optional(string, "Glacier")
archive_filter_prefix = optional(string, null)
}))
expire_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
expire_filter_prefix = optional(string, null)
}))
abort_multipart_enabled_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
abort_multipart_filter_prefix = optional(string, null)
}))
noncurrent_version_expiration_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
noncurrent_version_expiration_filter_prefix = optional(string, null)
}))
metrics_monitoring = optional(object({
usage_metrics_enabled = optional(bool, true)
request_metrics_enabled = optional(bool, true)
metrics_monitoring_crn = optional(string, null)
}))
object_versioning = optional(object({
enable = optional(bool, false)
}))
retention_rule = optional(object({
default = optional(number, 90)
maximum = optional(number, 350)
minimum = optional(number, 90)
permanent = optional(bool, false)
}))
cbr_rules = optional(list(object({
description = string
account_id = string
rule_contexts = list(object({
attributes = optional(list(object({
name = string
value = string
}))) }))
enforcement_mode = string
tags = optional(list(object({
name = string
value = string
})), [])
operations = optional(list(object({
api_types = list(object({
api_type_id = string
}))
})))
})), [])

}))
| n/a | yes | +| [bucket\_configs](#input\_bucket\_configs) | The Object Storage bucket configurations. |
list(object({
access_tags = optional(list(string), [])
add_bucket_name_suffix = optional(bool, true)
bucket_name = string
kms_encryption_enabled = optional(bool, true)
kms_guid = optional(string, null)
kms_key_crn = optional(string, null)
skip_iam_authorization_policy = optional(bool, false)
management_endpoint_type = optional(string, "public")
cross_region_location = optional(string, null)
storage_class = optional(string, "smart")
region_location = optional(string, null)
resource_instance_id = string
force_delete = optional(bool, true)
single_site_location = optional(string, null)
hard_quota = optional(number, null)
object_locking_enabled = optional(bool, false)
object_lock_duration_days = optional(number, 0)
object_lock_duration_years = optional(number, 0)

activity_tracking = optional(object({
read_data_events = optional(bool, true)
write_data_events = optional(bool, true)
management_events = optional(bool, true)
}))
archive_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
type = optional(string, "Glacier")
archive_filter_prefix = optional(string, null)
}))
expire_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
expire_filter_prefix = optional(string, null)
}))
abort_multipart_enabled_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
abort_multipart_filter_prefix = optional(string, null)
}))
noncurrent_version_expiration_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
noncurrent_version_expiration_filter_prefix = optional(string, null)
}))
metrics_monitoring = optional(object({
usage_metrics_enabled = optional(bool, true)
request_metrics_enabled = optional(bool, true)
metrics_monitoring_crn = optional(string, null)
}))
object_versioning = optional(object({
enable = optional(bool, false)
}))
retention_rule = optional(object({
default = optional(number, 90)
maximum = optional(number, 350)
minimum = optional(number, 90)
permanent = optional(bool, false)
}))
cbr_rules = optional(list(object({
description = string
account_id = string
rule_contexts = list(object({
attributes = optional(list(object({
name = string
value = string
}))) }))
enforcement_mode = string
tags = optional(list(object({
name = string
value = string
})), [])
operations = optional(list(object({
api_types = list(object({
api_type_id = string
}))
})))
})), [])

}))
| n/a | yes | ### Outputs diff --git a/modules/buckets/variables.tf b/modules/buckets/variables.tf index 19f2c438..9b943bd2 100644 --- a/modules/buckets/variables.tf +++ b/modules/buckets/variables.tf @@ -8,7 +8,7 @@ variable "bucket_configs" { type = list(object({ access_tags = optional(list(string), []) - add_bucket_name_suffix = optional(bool, false) + add_bucket_name_suffix = optional(bool, true) bucket_name = string kms_encryption_enabled = optional(bool, true) kms_guid = optional(string, null) From f89d82307f7abcefdbbe15ada9b306b7008cbfaa Mon Sep 17 00:00:00 2001 From: Harika-Ponna Date: Wed, 12 Nov 2025 19:22:05 +0530 Subject: [PATCH 2/3] fix: updated add_bucket_name_suffix to true --- modules/fscloud/README.md | 2 +- modules/fscloud/variables.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/fscloud/README.md b/modules/fscloud/README.md index 65d54ec8..c254f072 100644 --- a/modules/fscloud/README.md +++ b/modules/fscloud/README.md @@ -105,7 +105,7 @@ No resources. | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [access\_tags](#input\_access\_tags) | A list of access tags to apply to the Object Storage instance created by the module. [Learn more](https://cloud.ibm.com/docs/account?topic=account-access-tags-tutorial). | `list(string)` | `[]` | no | -| [bucket\_configs](#input\_bucket\_configs) | Object Storage bucket configurations |
list(object({
access_tags = optional(list(string), [])
add_bucket_name_suffix = optional(bool, false)
bucket_name = string
kms_encryption_enabled = optional(bool, true)
kms_guid = optional(string, null)
kms_key_crn = string
skip_iam_authorization_policy = optional(bool, false)
management_endpoint_type = string
cross_region_location = optional(string, null)
storage_class = optional(string, "smart")
region_location = optional(string, null)
resource_instance_id = optional(string, null)
force_delete = optional(bool, true)
single_site_location = optional(string, null)
hard_quota = optional(number, null)
object_locking_enabled = optional(bool, false)
object_lock_duration_days = optional(number, 0)
object_lock_duration_years = optional(number, 0)

activity_tracking = optional(object({
read_data_events = optional(bool, true)
write_data_events = optional(bool, true)
management_events = optional(bool, true)
}))
archive_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
type = optional(string, "Glacier")
archive_filter_prefix = optional(string, null)
}))
expire_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
expire_filter_prefix = optional(string, null)
}))
noncurrent_version_expiration_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
noncurrent_version_expiration_filter_prefix = optional(string, null)
}))
abort_multipart_enabled_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
abort_multipart_filter_prefix = optional(string, null)
}))
metrics_monitoring = optional(object({
usage_metrics_enabled = optional(bool, true)
request_metrics_enabled = optional(bool, true)
metrics_monitoring_crn = optional(string, null)
}))
object_versioning = optional(object({
enable = optional(bool, false)
}))
retention_rule = optional(object({
default = optional(number, 90)
maximum = optional(number, 350)
minimum = optional(number, 90)
permanent = optional(bool, false)
}))
cbr_rules = optional(list(object({
description = string
account_id = string
rule_contexts = list(object({
attributes = optional(list(object({
name = string
value = string
}))) }))
enforcement_mode = string
tags = optional(list(object({
name = string
value = string
})), [])
operations = optional(list(object({
api_types = list(object({
api_type_id = string
}))
})))
})), [])

}))
| `[]` | no | +| [bucket\_configs](#input\_bucket\_configs) | Object Storage bucket configurations |
list(object({
access_tags = optional(list(string), [])
add_bucket_name_suffix = optional(bool, true)
bucket_name = string
kms_encryption_enabled = optional(bool, true)
kms_guid = optional(string, null)
kms_key_crn = string
skip_iam_authorization_policy = optional(bool, false)
management_endpoint_type = string
cross_region_location = optional(string, null)
storage_class = optional(string, "smart")
region_location = optional(string, null)
resource_instance_id = optional(string, null)
force_delete = optional(bool, true)
single_site_location = optional(string, null)
hard_quota = optional(number, null)
object_locking_enabled = optional(bool, false)
object_lock_duration_days = optional(number, 0)
object_lock_duration_years = optional(number, 0)

activity_tracking = optional(object({
read_data_events = optional(bool, true)
write_data_events = optional(bool, true)
management_events = optional(bool, true)
}))
archive_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
type = optional(string, "Glacier")
archive_filter_prefix = optional(string, null)
}))
expire_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
expire_filter_prefix = optional(string, null)
}))
noncurrent_version_expiration_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
noncurrent_version_expiration_filter_prefix = optional(string, null)
}))
abort_multipart_enabled_rule = optional(object({
enable = optional(bool, false)
days = optional(number, null)
abort_multipart_filter_prefix = optional(string, null)
}))
metrics_monitoring = optional(object({
usage_metrics_enabled = optional(bool, true)
request_metrics_enabled = optional(bool, true)
metrics_monitoring_crn = optional(string, null)
}))
object_versioning = optional(object({
enable = optional(bool, false)
}))
retention_rule = optional(object({
default = optional(number, 90)
maximum = optional(number, 350)
minimum = optional(number, 90)
permanent = optional(bool, false)
}))
cbr_rules = optional(list(object({
description = string
account_id = string
rule_contexts = list(object({
attributes = optional(list(object({
name = string
value = string
}))) }))
enforcement_mode = string
tags = optional(list(object({
name = string
value = string
})), [])
operations = optional(list(object({
api_types = list(object({
api_type_id = string
}))
})))
})), [])

}))
| `[]` | no | | [cos\_instance\_name](#input\_cos\_instance\_name) | The name to give the Object Storage instance provisioned by this module. Applies only if `create_cos_instance` is true. | `string` | `null` | no | | [cos\_plan](#input\_cos\_plan) | The plan to use when Object Storage instances are created. Possible values: `standard`, `cos-one-rate-plan`. Applies only if `create_cos_instance` is true. For more details refer https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-provision. | `string` | `"standard"` | no | | [cos\_tags](#input\_cos\_tags) | The list of tags to add to the Object Storage instance. Applies only if `create_cos_instance` is true. | `list(string)` | `[]` | no | diff --git a/modules/fscloud/variables.tf b/modules/fscloud/variables.tf index 0cc5b27a..ae0063a8 100644 --- a/modules/fscloud/variables.tf +++ b/modules/fscloud/variables.tf @@ -62,7 +62,7 @@ variable "cos_plan" { variable "bucket_configs" { type = list(object({ access_tags = optional(list(string), []) - add_bucket_name_suffix = optional(bool, false) + add_bucket_name_suffix = optional(bool, true) bucket_name = string kms_encryption_enabled = optional(bool, true) kms_guid = optional(string, null) From b9acc26dfbd5ca755cc3e8dcd4352a4dbaa63f29 Mon Sep 17 00:00:00 2001 From: Daniel Butler Date: Mon, 17 Nov 2025 12:54:23 +0000 Subject: [PATCH 3/3] bad update --- README.md | 2 +- variables.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 70addc10..b3f635c1 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ You need the following permissions to run this module. | [object\_versioning\_enabled](#input\_object\_versioning\_enabled) | Whether to enable object versioning to keep multiple versions of an object in a bucket. Can't be used with retention rule. Applies only if `create_cos_bucket` is set to `true`. | `bool` | `false` | no | | [region](#input\_region) | The region to provision the bucket. If specified, set `cross_region_location` and `single_site_location` to `null`. | `string` | `"us-south"` | no | | [request\_metrics\_enabled](#input\_request\_metrics\_enabled) | If set to `true`, all Object Storage bucket request metrics are sent to Cloud Monitoring. | `bool` | `true` | no | -| [resource\_group\_id](#input\_resource\_group\_id) | The resource group ID for the Object Storage instance. Required if `create_cos_instance` is set to `true`. | `string` | `null` | no | +| [resource\_gRoup\_id](#input\_resource\_gRoup\_id) | The resource group ID for the Object Storage instance. Required if `create_cos_instance` is set to `true`. | `string` | `null` | no | | [resource\_keys](#input\_resource\_keys) | The definition of the resource keys to generate. [Learn more](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/resource_key). |
list(object({
name = string
key_name = optional(string, null)
generate_hmac_credentials = optional(bool, false)
role = optional(string, "Reader")
service_id_crn = optional(string, null)
}))
| `[]` | no | | [retention\_default](#input\_retention\_default) | The number of days that an object can remain unmodified in an Object Storage bucket. Applies only if `create_cos_bucket` is set to `true`. | `number` | `90` | no | | [retention\_enabled](#input\_retention\_enabled) | Whether retention for the Object Storage bucket is enabled. Applies only if `create_cos_bucket` is set to `true`. | `bool` | `false` | no | diff --git a/variables.tf b/variables.tf index ac6575ae..6c2ab0b0 100644 --- a/variables.tf +++ b/variables.tf @@ -2,7 +2,7 @@ # Common variables ############################################################################## -variable "resource_group_id" { +variable "resource_gRoup_id" { type = string description = "The resource group ID for the Object Storage instance. Required if `create_cos_instance` is set to `true`." default = null