{
    "properties": {
        "displayName": "Event Hub namespaces should use private link",
        "description": "Azure Private Link lets you connect your virtual network to Azure services without a public IP address at the source or destination. The Private Link platform handles the connectivity between the consumer and services over the Azure backbone network. By mapping private endpoints to Event Hub namespaces, data leakage risks are reduced. Learn more at: https://docs.microsoft.com/azure/event-hubs/private-link-service.",
        "metadata": {
            "version": "1.0.0",
            "category": "Event Hub"
        },
        "policyType": "BuiltIn",
        "mode": "Indexed",
        "parameters": {
            "effect": {
                "type": "String",
                "metadata": {
                    "displayName": "Effect",
                    "description": "Enable or disable the execution of the policy"
                },
                "allowedValues": [
                    "AuditIfNotExists",
                    "Disabled"
                ],
                "defaultValue": "AuditIfNotExists"
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "type",
                        "equals": "Microsoft.EventHub/namespaces"
                    }
                ]
            },
            "then": {
                "effect": "[parameters('effect')]",
				 "details": {
                    "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
                    "existenceCondition": {
                        "field": "Microsoft.EventHub/namespaces/privateEndpointConnections/privateLinkServiceConnectionState.status",
                        "equals": "Approved"
                    }
                }
            }
        }
    },
    "id": "/providers/Microsoft.Authorization/policyDefinitions/b8564268-eb4a-4337-89be-a19db070c59d",
    "name": "b8564268-eb4a-4337-89be-a19db070c59d"
}