{"id":27044120,"url":"https://github.com/libre-devops/terraform-azurerm-private-endpoint","last_synced_at":"2026-01-29T08:39:07.177Z","repository":{"id":285250222,"uuid":"624866174","full_name":"libre-devops/terraform-azurerm-private-endpoint","owner":"libre-devops","description":"A module used to deploy an Azure private endpoint","archived":false,"fork":false,"pushed_at":"2025-05-14T14:51:21.000Z","size":47,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-14T15:51:03.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libre-devops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-07T13:01:32.000Z","updated_at":"2025-05-14T14:51:23.000Z","dependencies_parsed_at":"2025-03-30T15:44:43.232Z","dependency_job_id":"efef39f5-cf08-4145-b40c-eac8a1356755","html_url":"https://github.com/libre-devops/terraform-azurerm-private-endpoint","commit_stats":null,"previous_names":["libre-devops/terraform-azurerm-private-endpoint"],"tags_count":2,"template":false,"template_full_name":"libre-devops/terraform-module-template","purl":"pkg:github/libre-devops/terraform-azurerm-private-endpoint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-private-endpoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-private-endpoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-private-endpoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-private-endpoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libre-devops","download_url":"https://codeload.github.com/libre-devops/terraform-azurerm-private-endpoint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-private-endpoint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259444928,"owners_count":22858544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-05T05:19:08.793Z","updated_at":"2026-01-29T08:39:02.158Z","avatar_url":"https://github.com/libre-devops.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"```hcl\nresource \"azurerm_private_endpoint\" \"this\" {\n  for_each = { for idx, pe in var.private_endpoints : idx =\u003e pe }\n\n  name                          = each.value.private_endpoint_name\n  location                      = each.value.location\n  resource_group_name           = each.value.rg_name\n  subnet_id                     = each.value.subnet_id\n  custom_network_interface_name = each.value.custom_network_interface_name\n  tags                          = each.value.tags\n\n  dynamic \"private_service_connection\" {\n    for_each = each.value.private_service_connection != null ? [each.value.private_service_connection] : []\n    content {\n      name                              = private_service_connection.value.name == null ? \"pvsvccon-${each.value.private_endpoint_name}\" : null\n      is_manual_connection              = private_service_connection.value.is_manual_connection\n      private_connection_resource_id    = private_service_connection.value.private_connection_resource_id\n      private_connection_resource_alias = private_service_connection.value.private_connection_resource_alias\n      subresource_names                 = private_service_connection.value.subresource_names\n      request_message                   = private_service_connection.value.is_manual_connection == null \u0026\u0026 private_service_connection.value.request_message == null ? \"This is a manual private endpoint connection for ${each.value.private_endpoint_name}\" : private_service_connection.value.request_message\n    }\n  }\n\n  dynamic \"private_dns_zone_group\" {\n    for_each = each.value.private_dns_zone_group != null ? [each.value.private_dns_zone_group] : []\n    content {\n      name                 = private_dns_zone_group.value.name\n      private_dns_zone_ids = private_dns_zone_group.value.private_dns_zone_ids\n    }\n  }\n\n  dynamic \"ip_configuration\" {\n    for_each = each.value.ip_configuration != null ? [each.value.ip_configuration] : []\n    content {\n      name               = ip_configuration.value.name\n      private_ip_address = ip_configuration.value.private_ip_address\n      subresource_name   = ip_configuration.value.subresource_name\n      member_name        = ip_configuration.value.member_name\n    }\n  }\n}\n\nresource \"azurerm_application_security_group\" \"pep_asg\" {\n  for_each = { for idx, pe in var.private_endpoints : idx =\u003e pe if pe.create_asg == true }\n\n  name                = each.value.asg_name != null ? each.value.asg_name : \"asg-${each.value.private_endpoint_name}\"\n  location            = azurerm_private_endpoint.this[each.key].location\n  resource_group_name = azurerm_private_endpoint.this[each.key].resource_group_name\n  tags                = azurerm_private_endpoint.this[each.key].tags\n}\n\nresource \"azurerm_private_endpoint_application_security_group_association\" \"pep_asg_association\" {\n  for_each                      = { for idx, pe in var.private_endpoints : idx =\u003e pe if pe.create_asg == true \u0026\u0026 pe.create_asg_association == true }\n  private_endpoint_id           = azurerm_private_endpoint.this[each.key].id\n  application_security_group_id = azurerm_application_security_group.pep_asg[each.key].id\n}\n```\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_azurerm\"\u003e\u003c/a\u003e [azurerm](#provider\\_azurerm) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [azurerm_application_security_group.pep_asg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/application_security_group) | resource |\n| [azurerm_private_endpoint.this](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/private_endpoint) | resource |\n| [azurerm_private_endpoint_application_security_group_association.pep_asg_association](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/private_endpoint_application_security_group_association) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_private_endpoints\"\u003e\u003c/a\u003e [private\\_endpoints](#input\\_private\\_endpoints) | The databricks workspaces to create | \u003cpre\u003elist(object({\u003cbr/\u003e    private_endpoint_name         = string\u003cbr/\u003e    location                      = optional(string, \"uksouth\")\u003cbr/\u003e    rg_name                       = string\u003cbr/\u003e    subnet_id                     = string\u003cbr/\u003e    custom_network_interface_name = optional(string, null)\u003cbr/\u003e    tags                          = optional(map(string), {})\u003cbr/\u003e    create_asg                    = optional(bool, false)\u003cbr/\u003e    asg_name                      = optional(string)\u003cbr/\u003e    create_asg_association        = optional(bool, false)\u003cbr/\u003e\u003cbr/\u003e    private_service_connection = optional(object({\u003cbr/\u003e      name                              = optional(string)\u003cbr/\u003e      is_manual_connection              = optional(bool, false)\u003cbr/\u003e      private_connection_resource_id    = optional(string)\u003cbr/\u003e      private_connection_resource_alias = optional(string)\u003cbr/\u003e      subresource_names                 = optional(list(string))\u003cbr/\u003e      request_message                   = optional(string)\u003cbr/\u003e    }))\u003cbr/\u003e    private_dns_zone_group = optional(object({\u003cbr/\u003e      name                 = optional(string)\u003cbr/\u003e      private_dns_zone_ids = optional(list(string))\u003cbr/\u003e    }))\u003cbr/\u003e    ip_configuration = optional(object({\u003cbr/\u003e      name               = optional(string)\u003cbr/\u003e      private_ip_address = optional(string)\u003cbr/\u003e      subresource_name   = optional(string)\u003cbr/\u003e      member_name        = optional(string)\u003cbr/\u003e    }))\u003cbr/\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_subresource_names\"\u003e\u003c/a\u003e [subresource\\_names](#input\\_subresource\\_names) | The sub resource names of private endpoints found at https://learn.microsoft.com/en-gb/azure/private-link/private-endpoint-overview#private-link-resource, not used, but provided for lookup option | `map(string)` | \u003cpre\u003e{\u003cbr/\u003e  \"Microsoft.Appconfiguration/configurationStores\": \"configurationStores\",\u003cbr/\u003e  \"Microsoft.Attestation/attestationProviders\": \"standard\",\u003cbr/\u003e  \"Microsoft.Authorization/resourceManagementPrivateLinks\": \"ResourceManagement\",\u003cbr/\u003e  \"Microsoft.Automation/automationAccounts\": \"Webhook, DSCAndHybridWorker\",\u003cbr/\u003e  \"Microsoft.AzureCosmosDB/databaseAccounts\": \"SQL, MongoDB, Cassandra, Gremlin, Table\",\u003cbr/\u003e  \"Microsoft.Batch/batchAccounts\": \"batchAccount, nodeManagement\",\u003cbr/\u003e  \"Microsoft.Cache/Redis\": \"redisCache\",\u003cbr/\u003e  \"Microsoft.Cache/redisEnterprise\": \"redisEnterprise\",\u003cbr/\u003e  \"Microsoft.CognitiveServices/accounts\": \"account\",\u003cbr/\u003e  \"Microsoft.Compute/diskAccesses\": \"managed disk\",\u003cbr/\u003e  \"Microsoft.ContainerRegistry/registries\": \"registry\",\u003cbr/\u003e  \"Microsoft.ContainerService/managedClusters\": \"management\",\u003cbr/\u003e  \"Microsoft.DBforMariaDB/servers\": \"mariadbServer\",\u003cbr/\u003e  \"Microsoft.DBforMySQL/flexibleServers\": \"mysqlServer\",\u003cbr/\u003e  \"Microsoft.DBforMySQL/servers\": \"mysqlServer\",\u003cbr/\u003e  \"Microsoft.DBforPostgreSQL/flexibleServers\": \"postgresqlServer\",\u003cbr/\u003e  \"Microsoft.DBforPostgreSQL/serverGroupsv2\": \"coordinator\",\u003cbr/\u003e  \"Microsoft.DBforPostgreSQL/servers\": \"postgresqlServer\",\u003cbr/\u003e  \"Microsoft.DataFactory/factories\": \"dataFactory\",\u003cbr/\u003e  \"Microsoft.Databricks/workspaces\": \"databricks_ui_api, browser_authentication\",\u003cbr/\u003e  \"Microsoft.DesktopVirtualization/hostpools\": \"connection\",\u003cbr/\u003e  \"Microsoft.DesktopVirtualization/workspaces\": \"feed\",\u003cbr/\u003e  \"Microsoft.DeviceUpdate/accounts\": \"DeviceUpdate\",\u003cbr/\u003e  \"Microsoft.Devices/IotHubs\": \"iotHub\",\u003cbr/\u003e  \"Microsoft.Devices/provisioningServices\": \"iotDps\",\u003cbr/\u003e  \"Microsoft.DigitalTwins/digitalTwinsInstances\": \"API\",\u003cbr/\u003e  \"Microsoft.DocumentDb/mongoClusters\": \"mongoCluster\",\u003cbr/\u003e  \"Microsoft.EventGrid/domains\": \"domain\",\u003cbr/\u003e  \"Microsoft.EventGrid/topics\": \"topic\",\u003cbr/\u003e  \"Microsoft.EventHub/namespaces\": \"namespace\",\u003cbr/\u003e  \"Microsoft.HDInsight/clusters\": \"cluster\",\u003cbr/\u003e  \"Microsoft.HealthcareApis/services\": \"fhir\",\u003cbr/\u003e  \"Microsoft.Insights/privatelinkscopes\": \"azuremonitor\",\u003cbr/\u003e  \"Microsoft.IoTCentral/IoTApps\": \"IoTApps\",\u003cbr/\u003e  \"Microsoft.KeyVault/vaults\": \"vault\",\u003cbr/\u003e  \"Microsoft.Keyvault/managedHSMs\": \"HSM\",\u003cbr/\u003e  \"Microsoft.Kusto/clusters\": \"cluster\",\u003cbr/\u003e  \"Microsoft.MachineLearningServices/registries\": \"amlregistry\",\u003cbr/\u003e  \"Microsoft.MachineLearningServices/workspaces\": \"amlworkspace\",\u003cbr/\u003e  \"Microsoft.Media/mediaservices\": \"keydelivery, liveevent, streamingendpoint\",\u003cbr/\u003e  \"Microsoft.Migrate/assessmentProjects\": \"project\",\u003cbr/\u003e  \"Microsoft.Network/applicationgateways\": \"application gateway\",\u003cbr/\u003e  \"Microsoft.Network/privateLinkServices\": \"empty\",\u003cbr/\u003e  \"Microsoft.PowerBI/privateLinkServicesForPowerBI\": \"Power BI\",\u003cbr/\u003e  \"Microsoft.Purview/accounts\": \"account, portal\",\u003cbr/\u003e  \"Microsoft.RecoveryServices/vaults\": \"AzureBackup, AzureSiteRecovery\",\u003cbr/\u003e  \"Microsoft.Relay/namespaces\": \"namespace\",\u003cbr/\u003e  \"Microsoft.Search/searchServices\": \"searchService\",\u003cbr/\u003e  \"Microsoft.ServiceBus/namespaces\": \"namespace\",\u003cbr/\u003e  \"Microsoft.SignalRService/SignalR\": \"signalr\",\u003cbr/\u003e  \"Microsoft.SignalRService/webPubSub\": \"webpubsub\",\u003cbr/\u003e  \"Microsoft.Sql/managedInstances\": \"managedInstance\",\u003cbr/\u003e  \"Microsoft.Sql/servers\": \"sqlServer\",\u003cbr/\u003e  \"Microsoft.Storage/storageAccounts\": \"blob, blob_secondary, table, table_secondary, queue, queue_secondary, file, file_secondary, web, web_secondary, dfs, dfs_secondary\",\u003cbr/\u003e  \"Microsoft.StorageSync/storageSyncServices\": \"File Sync Service\",\u003cbr/\u003e  \"Microsoft.Synapse/privateLinkHubs\": \"web\",\u003cbr/\u003e  \"Microsoft.Synapse/workspaces\": \"Sql, SqlOnDemand, Dev\",\u003cbr/\u003e  \"Microsoft.Web/hostingEnvironments\": \"hosting environment\",\u003cbr/\u003e  \"Microsoft.Web/sites\": \"sites\",\u003cbr/\u003e  \"Microsoft.Web/staticSites\": \"staticSites\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_private_endpoint_custom_network_interface_names\"\u003e\u003c/a\u003e [private\\_endpoint\\_custom\\_network\\_interface\\_names](#output\\_private\\_endpoint\\_custom\\_network\\_interface\\_names) | The custom network interface names of the created Azure Private Endpoints. |\n| \u003ca name=\"output_private_endpoint_ids\"\u003e\u003c/a\u003e [private\\_endpoint\\_ids](#output\\_private\\_endpoint\\_ids) | The IDs of the created Azure Private Endpoints. |\n| \u003ca name=\"output_private_endpoint_locations\"\u003e\u003c/a\u003e [private\\_endpoint\\_locations](#output\\_private\\_endpoint\\_locations) | The locations of the created Azure Private Endpoints. |\n| \u003ca name=\"output_private_endpoint_names\"\u003e\u003c/a\u003e [private\\_endpoint\\_names](#output\\_private\\_endpoint\\_names) | The names of the created Azure Private Endpoints. |\n| \u003ca name=\"output_private_endpoint_rg_names\"\u003e\u003c/a\u003e [private\\_endpoint\\_rg\\_names](#output\\_private\\_endpoint\\_rg\\_names) | The resource group names of the created Azure Private Endpoints. |\n| \u003ca name=\"output_private_endpoint_subnet_ids\"\u003e\u003c/a\u003e [private\\_endpoint\\_subnet\\_ids](#output\\_private\\_endpoint\\_subnet\\_ids) | The subnet IDs of the created Azure Private Endpoints. |\n| \u003ca name=\"output_private_endpoint_tags\"\u003e\u003c/a\u003e [private\\_endpoint\\_tags](#output\\_private\\_endpoint\\_tags) | The tags associated with the created Azure Private Endpoints. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibre-devops%2Fterraform-azurerm-private-endpoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibre-devops%2Fterraform-azurerm-private-endpoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibre-devops%2Fterraform-azurerm-private-endpoint/lists"}