-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcertificate_management.tf
33 lines (33 loc) · 1.45 KB
/
certificate_management.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#__________________________________________________________________
#
# Intersight Certificate Management Policy
# GUI Location: Policies > Create Policy > Certificate Management
#__________________________________________________________________
resource "intersight_certificatemanagement_policy" "map" {
for_each = local.certificate_management
description = coalesce(each.value.description, "${each.value.name} Certificate Management Policy.")
name = each.value.name
organization { moid = var.orgs[each.value.org] }
dynamic "certificates" {
for_each = { for k, v in each.value.certificates : k => v }
content {
certificate { additional_properties = jsonencode({
PemCertificate = base64encode(local.ps.certificate_management.certificate[certificates.value.id])
}) }
additional_properties = certificates.value.type == "IMC" ? jsonencode({
CertType = certificates.value.cert_type
Privatekey = base64encode(local.ps.certificate_management.private_key[certificates.value.id])
}) : jsonencode({ CertificateName = certificates.value.name })
enabled = certificates.value.enabled
object_type = length(regexall("RootCA", certificates.value.type)
) > 0 ? "certificatemanagement.RootCaCertificate" : "certificatemanagement.Imc"
}
}
dynamic "tags" {
for_each = { for v in each.value.tags : v.key => v }
content {
key = tags.value.key
value = tags.value.value
}
}
}