add email & notification topics
This commit is contained in:
parent
47b2e4d7dc
commit
c5c5dc3e4b
@ -2,6 +2,10 @@ data "oci_identity_tenancy" "tenancy" {
|
|||||||
tenancy_id = var.tenancy_id
|
tenancy_id = var.tenancy_id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data "oci_email_configuration" "endpoints" {
|
||||||
|
compartment_id = var.tenancy_id
|
||||||
|
}
|
||||||
|
|
||||||
# use this instead of oci_kms_key.key to await supporting policy creation
|
# use this instead of oci_kms_key.key to await supporting policy creation
|
||||||
data "oci_kms_key" "key" {
|
data "oci_kms_key" "key" {
|
||||||
for_each = var.create_vault ? var.use_kms : {}
|
for_each = var.create_vault ? var.use_kms : {}
|
||||||
|
21
oci.email.tf
21
oci.email.tf
@ -0,0 +1,21 @@
|
|||||||
|
resource "oci_email_email_domain" "domain" {
|
||||||
|
for_each = toset(var.enable_email_delivery ? var.email_configuration.email_domains : [])
|
||||||
|
compartment_id = oci_identity_compartment.compartment.id
|
||||||
|
name = each.value
|
||||||
|
freeform_tags = local.freeform_tags
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "oci_email_sender" "sender" {
|
||||||
|
for_each = toset(var.enable_email_delivery ? var.email_configuration.approved_senders : [])
|
||||||
|
|
||||||
|
compartment_id = oci_identity_compartment.compartment.id
|
||||||
|
email_address = each.value
|
||||||
|
freeform_tags = local.freeform_tags
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "oci_email_suppression" "suppression" {
|
||||||
|
for_each = toset(var.enable_email_delivery ? var.email_configuration.suppression_list : [])
|
||||||
|
|
||||||
|
compartment_id = oci_identity_compartment.compartment.id
|
||||||
|
email_address = each.value
|
||||||
|
}
|
@ -49,4 +49,12 @@ locals {
|
|||||||
index = split("_", item)[1]
|
index = split("_", item)[1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
topic_subscriptions = values({ for k, v in var.topics :
|
||||||
|
k => { for i, s in v.subscriptions : "${k}_${i}" => {
|
||||||
|
topic = k
|
||||||
|
protocol = s.protocol
|
||||||
|
endpoint = s.endpoint
|
||||||
|
} }
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
resource "oci_ons_notification_topic" "topic" {
|
||||||
|
for_each = var.create_topics ? var.topics : {}
|
||||||
|
compartment_id = oci_identity_compartment.compartment.id
|
||||||
|
name = each.key
|
||||||
|
description = try(each.value.description, null)
|
||||||
|
freeform_tags = local.freeform_tags
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "oci_ons_subscription" "subscription" {
|
||||||
|
for_each = var.create_topics ? local.topic_subscriptions : toset([])
|
||||||
|
|
||||||
|
compartment_id = oci_identity_compartment.compartment.id
|
||||||
|
topic_id = oci_ons_notification_topic.topic[each.value.topic].id
|
||||||
|
protocol = each.value.protocol
|
||||||
|
endpoint = each.value.endpoint
|
||||||
|
freeform_tags = local.freeform_tags
|
||||||
|
}
|
@ -113,6 +113,14 @@ output "instance_selected_images" {
|
|||||||
value = { for k, v in data.oci_core_images.selected : k => v.images[0].display_name }
|
value = { for k, v in data.oci_core_images.selected : k => v.images[0].display_name }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
output "email_endpoints" {
|
||||||
|
description = "The email configuration endpoints"
|
||||||
|
value = {
|
||||||
|
http = data.oci_email_configuration.endpoints.http_submit_endpoint
|
||||||
|
smtp = data.oci_email_configuration.endpoints.smtp_submit_endpoint
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
output "kms_vault_id" {
|
output "kms_vault_id" {
|
||||||
description = "The ID of the KMS vault"
|
description = "The ID of the KMS vault"
|
||||||
value = oci_kms_vault.vault[0].id
|
value = oci_kms_vault.vault[0].id
|
||||||
|
@ -158,26 +158,20 @@ variable "email_configuration" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "create_notification_topics" {
|
variable "create_topics" {
|
||||||
description = "Create notification topics"
|
description = "Create notification topics"
|
||||||
type = bool
|
type = bool
|
||||||
default = true
|
default = true
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "topic_configuration" {
|
variable "topics" {
|
||||||
description = "Values for notification topics configuration"
|
description = "Values for notification topics configuration"
|
||||||
type = any
|
type = map(object({
|
||||||
default = {}
|
description = string
|
||||||
}
|
subscriptions = list(object({
|
||||||
|
protocol = string
|
||||||
variable "enable_object_storage" {
|
endpoint = string
|
||||||
description = "Create object storage bucket supporting configuration"
|
}))
|
||||||
type = bool
|
}))
|
||||||
default = true
|
default = {}
|
||||||
}
|
|
||||||
|
|
||||||
variable "object_storage_buckets" {
|
|
||||||
description = "Values for object storage buckets to create"
|
|
||||||
type = any
|
|
||||||
default = {}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user