infrastructure/terraform/modules/logicapp/logicapp_apiconnections.tf (54 lines of code) (raw):

data "azurerm_managed_api" "managed_apis" { for_each = var.logic_app_api_connections name = each.key location = var.location } resource "azapi_resource" "api_connections" { for_each = var.logic_app_api_connections type = "Microsoft.Web/connections@2016-06-01" parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}/resourceGroups/${var.resource_group_name}" name = "${var.logic_app_name}-api-${each.key}" location = var.location tags = var.tags body = jsonencode({ kind = each.value.kind properties = { api = { name = data.azurerm_managed_api.managed_apis[each.key].name displayName = each.value.display_name description = each.value.description iconUri = "${each.value.icon_uri}/${data.azurerm_managed_api.managed_apis[each.key].name}/icon.png" brandColor = each.value.brand_color id = data.azurerm_managed_api.managed_apis[each.key].id type = "Microsoft.Web/locations/managedApis" } # authenticatedUser = {} customParameterValues = {}, displayName = each.value.display_name parameterValues = each.value.parameter_values parameterValueType = each.value.parameter_value_type testLinks = [] testRequests = [] } }) schema_validation_enabled = false response_export_values = ["properties.connectionRuntimeUrl"] } resource "azapi_resource" "api_connection_access_policies" { for_each = var.logic_app_api_connections type = "Microsoft.Web/connections/accessPolicies@2016-06-01" parent_id = azapi_resource.api_connections[each.key].id name = "${each.key}-${azurerm_logic_app_standard.logic_app_standard.identity[0].principal_id}" location = var.location body = jsonencode({ properties = { principal = { type = "ActiveDirectory" identity = { tenantId = azurerm_logic_app_standard.logic_app_standard.identity[0].tenant_id objectId = azurerm_logic_app_standard.logic_app_standard.identity[0].principal_id } } } }) schema_validation_enabled = false }