Skip to content

Commit e2e5f50

Browse files
committed
fix(acm): cannot use null in length due to optional block variables
Set default value of optional attributes to `null`.
1 parent e3b7593 commit e2e5f50

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

modules/acm/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ No modules.
2929

3030
| Name | Description | Type | Default | Required |
3131
|------|-------------|------|---------|:--------:|
32-
| <a name="input_amazon_issued_certificates"></a> [amazon\_issued\_certificates](#input\_amazon\_issued\_certificates) | List of Amazon-issued certificates to ACM create | <pre>map(object({<br> domain_name = string<br> subject_alternative_names = optional(list(string), [])<br> validation_method = optional(string)<br> key_algorithm = optional(string)<br> options = optional(object({<br> certificate_transparency_logging_preference = optional(string)<br> }))<br> validation_option = optional(object({<br> domain_name = string<br> validation_domain = string<br> }))<br> tags = optional(map(any), {})<br> }))</pre> | `{}` | no |
33-
| <a name="input_imported_certificates"></a> [imported\_certificates](#input\_imported\_certificates) | List of imported certificates to use to create ACM certificates | <pre>map(object({<br> private_key = string<br> certificate_body = string<br> certificate_chain = optional(string)<br> tags = optional(map(any), {})<br> }))</pre> | `{}` | no |
34-
| <a name="input_private_ca_issued_certificates"></a> [private\_ca\_issued\_certificates](#input\_private\_ca\_issued\_certificates) | List of Private CA issued certificates to use to create ACM certificates | <pre>map(object({<br> certificate_authority_arn = string<br> domain_name = string<br> early_renewal_duration = optional(string)<br> tags = optional(map(any), {})<br> }))</pre> | `{}` | no |
32+
| <a name="input_amazon_issued_certificates"></a> [amazon\_issued\_certificates](#input\_amazon\_issued\_certificates) | List of Amazon-issued certificates to ACM create | <pre>map(object({<br> domain_name = string<br> subject_alternative_names = optional(list(string), [])<br> validation_method = optional(string, null)<br> key_algorithm = optional(string, null)<br> options = optional(object({<br> certificate_transparency_logging_preference = optional(string, null)<br> }))<br> validation_option = optional(object({<br> domain_name = string<br> validation_domain = string<br> }))<br> tags = optional(map(any), {})<br> }))</pre> | `{}` | no |
33+
| <a name="input_imported_certificates"></a> [imported\_certificates](#input\_imported\_certificates) | List of imported certificates to use to create ACM certificates | <pre>map(object({<br> private_key = string<br> certificate_body = string<br> certificate_chain = optional(string, null)<br> tags = optional(map(any), {})<br> }))</pre> | `{}` | no |
34+
| <a name="input_private_ca_issued_certificates"></a> [private\_ca\_issued\_certificates](#input\_private\_ca\_issued\_certificates) | List of Private CA issued certificates to use to create ACM certificates | <pre>map(object({<br> certificate_authority_arn = string<br> domain_name = string<br> early_renewal_duration = optional(string, null)<br> tags = optional(map(any), {})<br> }))</pre> | `{}` | no |
3535
| <a name="input_tags"></a> [tags](#input\_tags) | Resource Tags to use with the created ACM certificates | `map(any)` | `{}` | no |
3636

3737
## Outputs

modules/acm/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ resource "aws_acm_certificate" "amazon_issued" {
1111
key_algorithm = each.value.key_algorithm
1212

1313
dynamic "options" {
14-
for_each = length(try(each.value.options, {})) > 0 ? [1] : []
14+
for_each = (try(each.value.options, null) != null && length(try(each.value.options, {})) > 0) ? [1] : []
1515

1616
content {
1717
certificate_transparency_logging_preference = each.value.options.certificate_transparency_logging_preference
1818
}
1919
}
2020

2121
dynamic "validation_option" {
22-
for_each = length(try(each.value.validation_option, {})) > 0 ? [1] : []
22+
for_each = (try(each.value.validation_option, null) != null && length(try(each.value.validation_option, {})) > 0) ? [1] : []
2323

2424
content {
2525
domain_name = each.value.validation_option.domain_name

modules/acm/variables.tf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ variable "amazon_issued_certificates" {
77
type = map(object({
88
domain_name = string
99
subject_alternative_names = optional(list(string), [])
10-
validation_method = optional(string)
11-
key_algorithm = optional(string)
10+
validation_method = optional(string, null)
11+
key_algorithm = optional(string, null)
1212
options = optional(object({
13-
certificate_transparency_logging_preference = optional(string)
13+
certificate_transparency_logging_preference = optional(string, null)
1414
}))
1515
validation_option = optional(object({
1616
domain_name = string
@@ -26,7 +26,7 @@ variable "imported_certificates" {
2626
type = map(object({
2727
private_key = string
2828
certificate_body = string
29-
certificate_chain = optional(string)
29+
certificate_chain = optional(string, null)
3030
tags = optional(map(any), {})
3131
}))
3232
default = {}
@@ -37,7 +37,7 @@ variable "private_ca_issued_certificates" {
3737
type = map(object({
3838
certificate_authority_arn = string
3939
domain_name = string
40-
early_renewal_duration = optional(string)
40+
early_renewal_duration = optional(string, null)
4141
tags = optional(map(any), {})
4242
}))
4343
default = {}

0 commit comments

Comments
 (0)