main.conditionmonitor.tf (91 lines of code) (raw):
resource "azurerm_network_connection_monitor" "this" {
for_each = var.condition_monitor == null ? {} : tomap(var.condition_monitor)
location = var.location
name = each.value.name
network_watcher_id = var.network_watcher_id
notes = each.value.notes
output_workspace_resource_ids = each.value.output_workspace_resource_ids
tags = var.tags
dynamic "endpoint" {
for_each = each.value.endpoint == null ? [] : each.value.endpoint
content {
name = endpoint.value.name
address = endpoint.value.address
coverage_level = endpoint.value.coverage_level
excluded_ip_addresses = endpoint.value.excluded_ip_addresses
included_ip_addresses = endpoint.value.included_ip_addresses
target_resource_id = endpoint.value.target_resource_id
target_resource_type = endpoint.value.target_resource_type
dynamic "filter" {
for_each = endpoint.value.filter == null ? [] : [endpoint.value.filter]
content {
type = filter.value.type
dynamic "item" {
for_each = filter.value.item == null ? [] : filter.value.item
content {
address = item.value.address
type = item.value.type
}
}
}
}
}
}
dynamic "test_configuration" {
for_each = each.value.test_configuration == null ? [] : each.value.test_configuration
content {
name = test_configuration.value.name
protocol = test_configuration.value.protocol
preferred_ip_version = test_configuration.value.preferred_ip_version
test_frequency_in_seconds = test_configuration.value.test_frequency_in_seconds
dynamic "http_configuration" {
for_each = test_configuration.value.http_configuration == null ? [] : [test_configuration.value.http_configuration]
content {
method = http_configuration.value.method
path = http_configuration.value.path
port = http_configuration.value.port
prefer_https = http_configuration.value.prefer_https
valid_status_code_ranges = http_configuration.value.valid_status_code_ranges
dynamic "request_header" {
for_each = http_configuration.value.request_header == null ? [] : http_configuration.value.request_header
content {
name = request_header.value.name
value = request_header.value.value
}
}
}
}
dynamic "icmp_configuration" {
for_each = test_configuration.value.icmp_configuration == null ? [] : [test_configuration.value.icmp_configuration]
content {
trace_route_enabled = icmp_configuration.value.trace_route_enabled
}
}
dynamic "success_threshold" {
for_each = test_configuration.value.success_threshold == null ? [] : [test_configuration.value.success_threshold]
content {
checks_failed_percent = success_threshold.value.checks_failed_percent
round_trip_time_ms = success_threshold.value.round_trip_time_ms
}
}
dynamic "tcp_configuration" {
for_each = test_configuration.value.tcp_configuration == null ? [] : [test_configuration.value.tcp_configuration]
content {
port = tcp_configuration.value.port
destination_port_behavior = tcp_configuration.value.destination_port_behavior
trace_route_enabled = tcp_configuration.value.trace_route_enabled
}
}
}
}
dynamic "test_group" {
for_each = each.value.test_group == null ? [] : each.value.test_group
content {
destination_endpoints = test_group.value.destination_endpoints
name = test_group.value.name
source_endpoints = test_group.value.source_endpoints
test_configuration_names = test_group.value.test_configuration_names
enabled = test_group.value.enabled
}
}
}