From f8c7686d9a3097d0cebdb93492c7f4523381defb Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Fri, 29 Nov 2024 15:50:50 +0100 Subject: [PATCH 01/21] Testing least privileges --- .../alz/policyAssignments/DINE-ConnectivityAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-HybridVMAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-IdentityAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-KeyManagementAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-LoadBalancingAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-ManagementAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-NetworkChangesAssignment.json | 4 ++-- .../policyAssignments/DINE-NotificationAssetsAssignment.json | 4 ++-- .../policyAssignments/DINE-RecoveryServicesAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-ServiceHealthAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-StorageAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-VMAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-WebAssignment.json | 4 ++-- patterns/alz/scripts/Start-AMBA-ALZ-Maintenance.ps1 | 4 ++-- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json b/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json index 1e8c39b8d..3ba4f7635 100644 --- a/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json +++ b/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBAConnectivity": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaConnectivity))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaConnectivity), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json b/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json index 754915a59..018fb38a9 100644 --- a/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json +++ b/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json @@ -62,7 +62,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830", "roleAssignmentNames": { "roleAssignmentNameContributor": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaHybridVM,parameters('scope')))]", @@ -103,7 +103,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaHybridVM), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-IdentityAssignment.json b/patterns/alz/policyAssignments/DINE-IdentityAssignment.json index 7a82cb368..6bc337086 100644 --- a/patterns/alz/policyAssignments/DINE-IdentityAssignment.json +++ b/patterns/alz/policyAssignments/DINE-IdentityAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBAIdentity": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaIdentity))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaIdentity), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json b/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json index d2a5f5351..70894de28 100644 --- a/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json +++ b/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBAKeyManagement": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaKeyManagement))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaKeyManagement), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json b/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json index 2a04cac0e..8c7e93dcc 100644 --- a/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json +++ b/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBALoadBalancing": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaLoadBalancing))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaLoadBalancing), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-ManagementAssignment.json b/patterns/alz/policyAssignments/DINE-ManagementAssignment.json index ffa24e1e6..5c55107f0 100644 --- a/patterns/alz/policyAssignments/DINE-ManagementAssignment.json +++ b/patterns/alz/policyAssignments/DINE-ManagementAssignment.json @@ -65,7 +65,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830", "roleAssignmentNames": { "roleAssignmentNameContributor": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaManagement,parameters('scope')))]", @@ -106,7 +106,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaManagement), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json b/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json index 1aca71718..387ab67fb 100644 --- a/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json +++ b/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBANetworkChanges": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaNetworkChanges))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaNetworkChanges), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json b/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json index 99ed8d174..bc4cae2f1 100644 --- a/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json +++ b/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBANotificationAssets": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaNotificationAssets))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaNotificationAssets), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json b/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json index 940d54319..9f00b229b 100644 --- a/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json +++ b/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBARecoveryServices": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaRecoveryServices))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaRecoveryServices), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json b/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json index 093dbd3a5..58d04e1bc 100644 --- a/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json +++ b/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBAServiceHealth": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaServiceHealth))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaServiceHealth), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-StorageAssignment.json b/patterns/alz/policyAssignments/DINE-StorageAssignment.json index cc52bc1d8..80a898411 100644 --- a/patterns/alz/policyAssignments/DINE-StorageAssignment.json +++ b/patterns/alz/policyAssignments/DINE-StorageAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBAStorage": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaStorage))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaStorage), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-VMAssignment.json b/patterns/alz/policyAssignments/DINE-VMAssignment.json index f67b135f8..d09171db4 100644 --- a/patterns/alz/policyAssignments/DINE-VMAssignment.json +++ b/patterns/alz/policyAssignments/DINE-VMAssignment.json @@ -65,7 +65,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830", "roleAssignmentNames": { "roleAssignmentNameContributor": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaVM,parameters('scope')))]", @@ -106,7 +106,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaVM), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-WebAssignment.json b/patterns/alz/policyAssignments/DINE-WebAssignment.json index 6a146b453..7030a03b0 100644 --- a/patterns/alz/policyAssignments/DINE-WebAssignment.json +++ b/patterns/alz/policyAssignments/DINE-WebAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", + "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", "roleAssignmentNames": { "deployAMBAWeb": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaWeb))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaWeb), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/scripts/Start-AMBA-ALZ-Maintenance.ps1 b/patterns/alz/scripts/Start-AMBA-ALZ-Maintenance.ps1 index b2ad11634..c422fab37 100644 --- a/patterns/alz/scripts/Start-AMBA-ALZ-Maintenance.ps1 +++ b/patterns/alz/scripts/Start-AMBA-ALZ-Maintenance.ps1 @@ -267,7 +267,7 @@ Function Get-ALZ-Deployments { # get deployments to delete $allDeployments = @() ForEach ($mg in $managementGroups) { - $deployments = Get-AzManagementGroupDeployment -ManagementGroupId "$($mg.mgName)" -WarningAction silentlyContinue | where { $_.DeploymentName.StartsWith("amba-") } + $deployments = Get-AzManagementGroupDeployment -ManagementGroupId "$($mg.mgName)" -WarningAction silentlyContinue | Where-Object { $_.DeploymentName.StartsWith("amba-") } $allDeployments += $deployments } Write-Host "- Found '$($allDeployments.Count)' deployments for AMBA-ALZ pattern with name starting with 'amba-' performed on the '$pseudoRootManagementGroup' Management Group hierarchy." -ForegroundColor Cyan @@ -446,7 +446,7 @@ Switch ($cleanItems) $alertsToBeDeleted = Get-ALZ-Alerts # Invoking function to retrieve resource groups - $rgToBeDeleted = Get-ALZ-ResourceGroups + #$rgToBeDeleted = Get-ALZ-ResourceGroups # Invoking function to retrieve policy assignments $policyAssignmentToBeDeleted = Get-ALZ-PolicyAssignments From bc75f5c37ad195bc055f84c29ede8999d0d2e5bb Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Fri, 29 Nov 2024 16:11:39 +0100 Subject: [PATCH 02/21] Pushing the new remediation script --- .../scripts/Start-AMBA-ALZ-Remediation.ps1 | 244 ++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 patterns/alz/scripts/Start-AMBA-ALZ-Remediation.ps1 diff --git a/patterns/alz/scripts/Start-AMBA-ALZ-Remediation.ps1 b/patterns/alz/scripts/Start-AMBA-ALZ-Remediation.ps1 new file mode 100644 index 000000000..608e8dedb --- /dev/null +++ b/patterns/alz/scripts/Start-AMBA-ALZ-Remediation.ps1 @@ -0,0 +1,244 @@ +# The below copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +<# + .DESCRIPTION + This script is used to trigger remediation on a specific policy or policy set at management group scope. + It first calls the Azure REST API to get the policy assignments in the management group scope, then it iterates through the policy assignments, checking by name whether it's a policy set or an individual policy. + Depending on the result the script will either enumerate the policy set and trigger remediation for each individual policy in the set or trigger remediation for the individual policy. + + .LINK + https://azure.github.io/azure-monitor-baseline-alerts/patterns/alz/deploy/Remediate-Policies/ + + .PARAMETER managementGroupName + The management group name where the policy assignments are located. + + .PARAMETER policyName + The name of the policy or policy set to remediate. + + .EXAMPLE + Modify the following variables to match your environment: + + $pseudoRootManagementGroup = "The pseudo root management group id parenting the Platform and Landing Zones management groups" + $platformManagementGroup = "The management group id for Platform" + $identityManagementGroup = "The management group id for Identity" + $managementManagementGroup = "The management group id for Management" + $connectivityManagementGroup = "The management group id for Connectivity" + $LZManagementGroup = "The management group id for Landing Zones" + + Run the following commands to initiate remediation: + + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName Notification-Assets + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName Alerting-ServiceHealth + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $platformManagementGroup -policyName Alerting-HybridVM + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $platformManagementGroup -policyName Alerting-VM + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $connectivityManagementGroup -policyName Alerting-Connectivity + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $identityManagementGroup -policyName Alerting-Identity + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $managementManagementGroup -policyName Alerting-Management + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-KeyManagement + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-LoadBalancing + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-NetworkChanges + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-RecoveryServices + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-Storage + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-HybridVM + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-VM + .\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-Web +#> + +# The following SuppressMessageAttribute entries are used to suppress PSScriptAnalyzer tests against known exceptions as per: +# https://github.com/powershell/psscriptanalyzer#suppressing-rules +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '', Justification = 'False positive')] +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '', Justification = 'False positive')] +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseApprovedVerbs', '', Justification = 'Approved verbs are not available for this scenario')] + +Param( + # [Parameter(Mandatory = $true)] [ValidateSet("AzureCloud", "AzureUSGovernment", "AzureChinaCloud", IgnoreCase = $true)] [string] $azureEnvironment, + [Parameter(Mandatory = $true)] [string] $managementGroupName, + [Parameter(Mandatory = $true)] [string] $policyName +) + +#region general functions + +# Function to trigger remediation for a single policy +Function Start-PolicyRemediation { + Param( + [Parameter(Mandatory = $true)] [string] $azureEnvironmentURI, + [Parameter(Mandatory = $true)] [string] $managementGroupName, + [Parameter(Mandatory = $true)] [string] $policyAssignmentName, + [Parameter(Mandatory = $true)] [string] $policyAssignmentId, + [Parameter(Mandatory = $false)] [string] $policyDefinitionReferenceId + ) + $guid = New-Guid + + # Create remediation for the individual policy + $uri = "https://$($azureEnvironmentURI)/providers/Microsoft.Management/managementGroups/$($managementGroupName)/providers/Microsoft.PolicyInsights/remediations/$($policyName)-$($guid)?api-version=2021-10-01" + $body = @{ + properties = @{ + policyAssignmentId = "$policyAssignmentId" + } + } + if ($policyDefinitionReferenceId) { + $body.properties.policyDefinitionReferenceId = $policyDefinitionReferenceId + } + $body = $body | ConvertTo-Json -Depth 10 + Invoke-AzRestMethod -Uri $uri -Method PUT -Payload $body +} + +#Function to get the policy assignments in the management group scope +function Get-PolicyType { + Param ( + [Parameter(Mandatory = $true)] [string] $azureEnvironmentURI, + [Parameter(Mandatory = $true)] [string] $managementGroupName, + [Parameter(Mandatory = $true)] [string] $policyName + ) + + # Validate that the management group exists through the Azure REST API + $uri = "https://$($azureEnvironmentURI)/providers/Microsoft.Management/managementGroups/$($managementGroupName)?api-version=2021-04-01" + $result = (Invoke-AzRestMethod -Uri $uri -Method GET).Content | ConvertFrom-Json -Depth 100 + if ($result.error) { + throw "Management group $managementGroupName does not exist, please specify a valid management group name" + } + + # Getting custom policySetDefinitions + $uri = "https://$($azureEnvironmentURI)/providers/Microsoft.Management/managementGroups/$($managementGroupName)/providers/Microsoft.Authorization/policySetDefinitions?&api-version=2023-04-01" + $initiatives = (Invoke-AzRestMethod -Uri $uri -Method GET).Content | ConvertFrom-Json -Depth 100 + + # Get policy assignments at management group scope + $assignmentFound = $false + $uri = "https://$($azureEnvironmentURI)/providers/Microsoft.Management/managementGroups/$($managementGroupName)/providers/Microsoft.Authorization/policyAssignments?`$filter=atScope()&api-version=2022-06-01" + $result = (Invoke-AzRestMethod -Uri $uri -Method GET).Content | ConvertFrom-Json -Depth 100 + + # Iterate through the policy assignments + $result.value | ForEach-Object { + + #check if the policy assignment is for the specified policy set definition + If ($($PSItem.properties.policyDefinitionId) -match "/providers/Microsoft.Authorization/policySetDefinitions/$policyName") { + + # Go to enumerating policy set + $assignmentFound = $true + Enumerate-PolicySet -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyAssignmentObject $PSItem + } + Elseif ($($PSItem.properties.policyDefinitionId) -match "/providers/Microsoft.Authorization/policyDefinitions/$policyName") { + + # Go to handling individual policy + $assignmentFound = $true + Enumerate-Policy -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyAssignmentObject $PSItem + } + Else { + + # Getting parent initiative for unassigned individual policies + If ($initiatives) { + $parentInitiative = $initiatives.value | Where-Object { ($_.properties.policyType -eq 'Custom') -and ($_.properties.metadata -like '*_deployed_by_amba*') } | Where-Object { $_.properties.policyDefinitions.policyDefinitionReferenceId -eq $policyname } + + # Getting the assignment of the parent initiative + If ($parentInitiative) { + If ($($PSItem.properties.policyDefinitionId) -match "/providers/Microsoft.Authorization/policySetDefinitions/$($parentInitiative.name)") { + + # Invoking policy remediation + $assignmentFound = $true + Start-PolicyRemediation -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyAssignmentName $PSItem.name -policyAssignmentId $PSItem.id -policyDefinitionReferenceId $policyName + } + } + } + } + } + + # If no policy assignments were found for the specified policy name, throw an error + If (!$assignmentFound) { + throw "No policy assignments found for policy $policyName at management group scope $managementGroupName" + } +} + +# Function to enumerate the policies in the policy set and trigger remediation for each individual policy +function Enumerate-PolicySet { + param ( + [Parameter(Mandatory = $true)] [string] $azureEnvironmentURI, + [Parameter(Mandatory = $true)] [string] $managementGroupName, + [Parameter(Mandatory = $true)] [object] $policyAssignmentObject + ) + + # Extract policy assignment information + $policyAssignmentObject + $policyAssignmentId = $policyAssignmentObject.id + $name = $policyAssignmentObject.name + $policySetId = $policyAssignmentObject.properties.policyDefinitionId + $policySetId + $psetUri = "https://$($azureEnvironmentURI)$($policySetId)?api-version=2021-06-01" + $policySet = (Invoke-AzRestMethod -Uri $psetUri -Method GET).Content | ConvertFrom-Json -Depth 100 + $policySet + $policies = $policySet.properties.policyDefinitions + + # Iterate through the policies in the policy set + If ($policyAssignmentObject.properties.policyDefinitionId -match "/providers/Microsoft.Authorization/policySetDefinitions/Alerting-ServiceHealth") { + $policyDefinitionReferenceId = "Deploy_ServiceHealth_ActionGroups" + Start-PolicyRemediation -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyAssignmentName $name -policyAssignmentId $policyAssignmentId -policyDefinitionReferenceId $policyDefinitionReferenceId + Write-Host " Waiting for 5 minutes while remediating the 'Deploy Service Health Action Group' policy before continuing." -ForegroundColor Cyan + Start-Sleep -Seconds 360 + } + Foreach ($policy in $policies) { + $policyDefinitionId = $policy.policyDefinitionId + $policyDefinitionReferenceId = $policy.policyDefinitionReferenceId + + # Trigger remediation for the individual policy + Start-PolicyRemediation -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyAssignmentName $name -policyAssignmentId $policyAssignmentId -policyDefinitionReferenceId $policyDefinitionReferenceId + } +} + +#Function to get specific information about a policy assignment for a single policy and trigger remediation +function Enumerate-Policy { + param ( + [Parameter(Mandatory = $true)] [string] $azureEnvironmentURI, + [Parameter(Mandatory = $true)] [string] $managementGroupName, + [Parameter(Mandatory = $true)] [object] $policyAssignmentObject + ) + + # Extract policy assignment information + $policyAssignmentId = $policyAssignmentObject.id + $name = $policyAssignmentObject.name + $policyDefinitionId = $policyAssignmentObject.properties.policyDefinitionId + Start-PolicyRemediation -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyAssignmentName $name -policyAssignmentId $policyAssignmentId +} + +#endregion + +#Main script + +# Checking for required module presence +If (-NOT(Get-Module -ListAvailable Az.Resources)) { + Write-Warning "This script requires the Az.Resources module." + + $response = Read-Host "Would you like to install the 'Az.Resources' module now? (y/n)" + If ($response -match '[yY]') { Install-Module Az.Resources -Scope CurrentUser } +} + +# Assigning Azure environment URI to a fix value while leaving the code for Sovereign cloud in and commented +$azureEnvironmentURI = "management.azure.com" + +# Leaving the following code implementation for Sovereign cloud in as commented in preparation for future supportability +<# +switch ($azureEnvironment) { + "AzureCloud" { + $azureEnvironmentURI = "management.azure.com" + } + + "AzureUSGovernment" { + $azureEnvironmentURI = "management.usgovcloudapi.net" # See API Endpoints for Azure US Government at https://learn.microsoft.com/en-us/azure/azure-government/compare-azure-government-global-azure#guidance-for-developers + } + + "AzureChinaCloud" { + $azureEnvironmentURI = "management.chinacloudapi.cn" # See API Endpoints for Azure China at https://learn.microsoft.com/en-us/azure/reliability/sovereign-cloud-china#azure-in-china-rest-endpoints + } + + Default {azureEnvironmentURI = "management.azure.com"} +} +#> + +Get-PolicyType -azureEnvironmentURI $azureEnvironmentURI -managementGroupName $managementGroupName -policyName $policyName From 47972f3d5457b9d1dac1a1b1f2b2f1ab7734bb4c Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Fri, 29 Nov 2024 16:31:09 +0100 Subject: [PATCH 03/21] Reverting to Contributor rights --- .../alz/policyAssignments/DINE-ConnectivityAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-HybridVMAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-IdentityAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-KeyManagementAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-LoadBalancingAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-ManagementAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-NetworkChangesAssignment.json | 4 ++-- .../policyAssignments/DINE-NotificationAssetsAssignment.json | 4 ++-- .../policyAssignments/DINE-RecoveryServicesAssignment.json | 4 ++-- .../alz/policyAssignments/DINE-ServiceHealthAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-StorageAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-VMAssignment.json | 4 ++-- patterns/alz/policyAssignments/DINE-WebAssignment.json | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json b/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json index 3ba4f7635..1e8c39b8d 100644 --- a/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json +++ b/patterns/alz/policyAssignments/DINE-ConnectivityAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBAConnectivity": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaConnectivity))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaConnectivity), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json b/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json index 018fb38a9..754915a59 100644 --- a/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json +++ b/patterns/alz/policyAssignments/DINE-HybridVMAssignment.json @@ -62,7 +62,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830", "roleAssignmentNames": { "roleAssignmentNameContributor": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaHybridVM,parameters('scope')))]", @@ -103,7 +103,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaHybridVM), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-IdentityAssignment.json b/patterns/alz/policyAssignments/DINE-IdentityAssignment.json index 6bc337086..7a82cb368 100644 --- a/patterns/alz/policyAssignments/DINE-IdentityAssignment.json +++ b/patterns/alz/policyAssignments/DINE-IdentityAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBAIdentity": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaIdentity))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaIdentity), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json b/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json index 70894de28..d2a5f5351 100644 --- a/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json +++ b/patterns/alz/policyAssignments/DINE-KeyManagementAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBAKeyManagement": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaKeyManagement))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaKeyManagement), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json b/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json index 8c7e93dcc..2a04cac0e 100644 --- a/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json +++ b/patterns/alz/policyAssignments/DINE-LoadBalancingAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBALoadBalancing": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaLoadBalancing))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaLoadBalancing), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-ManagementAssignment.json b/patterns/alz/policyAssignments/DINE-ManagementAssignment.json index 5c55107f0..ffa24e1e6 100644 --- a/patterns/alz/policyAssignments/DINE-ManagementAssignment.json +++ b/patterns/alz/policyAssignments/DINE-ManagementAssignment.json @@ -65,7 +65,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830", "roleAssignmentNames": { "roleAssignmentNameContributor": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaManagement,parameters('scope')))]", @@ -106,7 +106,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaManagement), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json b/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json index 387ab67fb..1aca71718 100644 --- a/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json +++ b/patterns/alz/policyAssignments/DINE-NetworkChangesAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBANetworkChanges": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaNetworkChanges))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaNetworkChanges), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json b/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json index bc4cae2f1..99ed8d174 100644 --- a/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json +++ b/patterns/alz/policyAssignments/DINE-NotificationAssetsAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBANotificationAssets": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaNotificationAssets))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaNotificationAssets), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json b/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json index 9f00b229b..940d54319 100644 --- a/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json +++ b/patterns/alz/policyAssignments/DINE-RecoveryServicesAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBARecoveryServices": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaRecoveryServices))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaRecoveryServices), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json b/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json index 58d04e1bc..093dbd3a5 100644 --- a/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json +++ b/patterns/alz/policyAssignments/DINE-ServiceHealthAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBAServiceHealth": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaServiceHealth))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaServiceHealth), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-StorageAssignment.json b/patterns/alz/policyAssignments/DINE-StorageAssignment.json index 80a898411..cc52bc1d8 100644 --- a/patterns/alz/policyAssignments/DINE-StorageAssignment.json +++ b/patterns/alz/policyAssignments/DINE-StorageAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBAStorage": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaStorage))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaStorage), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-VMAssignment.json b/patterns/alz/policyAssignments/DINE-VMAssignment.json index d09171db4..f67b135f8 100644 --- a/patterns/alz/policyAssignments/DINE-VMAssignment.json +++ b/patterns/alz/policyAssignments/DINE-VMAssignment.json @@ -65,7 +65,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830", "roleAssignmentNames": { "roleAssignmentNameContributor": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaVM,parameters('scope')))]", @@ -106,7 +106,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaVM), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } diff --git a/patterns/alz/policyAssignments/DINE-WebAssignment.json b/patterns/alz/policyAssignments/DINE-WebAssignment.json index 7030a03b0..6a146b453 100644 --- a/patterns/alz/policyAssignments/DINE-WebAssignment.json +++ b/patterns/alz/policyAssignments/DINE-WebAssignment.json @@ -39,7 +39,7 @@ "Default": "must", "DoNotEnforce": "should" }, - "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c", "roleAssignmentNames": { "deployAMBAWeb": "[guid(concat(parameters('topLevelManagementGroupPrefix'), variables('policyAssignmentNames').ambaWeb))]" } @@ -78,7 +78,7 @@ ], "properties": { "principalType": "ServicePrincipal", - "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacMonitoringContributor'))]", + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]", "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').ambaWeb), '2019-09-01', 'Full' ).identity.principalId)]", "description": "_deployed_by_amba" } From 9368ce40c07756b0453347ef08175ac55b33d238 Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Tue, 3 Dec 2024 17:53:07 +0100 Subject: [PATCH 04/21] Fixing property case as per issue #443 --- .../policyDefinitions/policies-Network.json | 42 +++++++++---------- .../alz/policyDefinitions/policies-Web.json | 6 +-- ...loy-CDNP-OriginHealthPercentage-Alert.json | 4 +- ...AGW-ApplicationGatewayTotalTime-Alert.json | 4 +- ...AGW-BackendLastByteResponseTime-Alert.json | 4 +- .../Deploy-AGW-CPUUtil-Alert.json | 4 +- .../Deploy-AGW-CapacityUnits-Alert.json | 4 +- .../Deploy-AGW-ComputeUnits-Alert.json | 4 +- .../Deploy-AGW-FailedRequests-Alert.json | 4 +- .../Deploy-AGW-ResponseStatus-Alert.json | 4 +- .../Deploy-AGW-UnhealthyHostCount-Alert.json | 4 +- .../Deploy-ERP-BitsInPerSecond-Alert.json | 4 +- .../Deploy-ERP-BitsOutPerSecond-Alert.json | 4 +- .../Deploy-ERP-LineProtocol-Alert.json | 4 +- .../Deploy-ERP-RxLightLevelLow-Alert.json | 4 +- .../Deploy-ERP-TxLightLevelHigh-Alert.json | 4 +- .../Deploy-ERP-TxLightLevelLow-Alert.json | 4 +- .../Deploy-LB-DatapathAvailability-Alert.json | 4 +- ...oy-LB-GlobalBackendAvailability-Alert.json | 4 +- .../Deploy-LB-HealthProbeStatus-Alert.json | 4 +- .../Deploy-LB-UsedSNATPorts-Alert.json | 4 +- .../Deploy-TM-EndpointHealth-Alert.json | 4 +- .../Deploy-WSF-CPUPercentage-Alert.json | 4 +- .../Deploy-WSF-MemoryPercentage-Alert.json | 4 +- 24 files changed, 68 insertions(+), 68 deletions(-) diff --git a/patterns/alz/policyDefinitions/policies-Network.json b/patterns/alz/policyDefinitions/policies-Network.json index 5835c65cd..b95ba1830 100644 --- a/patterns/alz/policyDefinitions/policies-Network.json +++ b/patterns/alz/policyDefinitions/policies-Network.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.19.5.34762", - "templateHash": "12097418730809858419" + "templateHash": "8599394185312265353" } }, "parameters": { @@ -117,13 +117,13 @@ ], "$fxv#0": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_activitylog_Firewall_Delete\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy Activity Log Azure FireWall Delete Alert\",\r\n \"description\": \"Policy to Deploy Activity Log Azure Firewall Delete Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.1.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Resource Group Name\",\r\n \"description\": \"Resource group the alert is placed in\"\r\n },\r\n \"defaultValue\": \"rg-amba-monitoring-001\"\r\n },\r\n \"alertResourceGroupTags\": {\r\n \"type\": \"Object\",\r\n \"metadata\": {\r\n \"displayName\": \"Resource Group Tags\",\r\n \"description\": \"Tags on the Resource group the alert is placed in\"\r\n },\r\n \"defaultValue\": {\r\n \"Project\": \"amba-monitoring\"\r\n }\r\n },\r\n \"alertResourceGroupLocation\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Resource Group Location\",\r\n \"description\": \"Location of the Resource group the alert is placed in\"\r\n },\r\n \"defaultValue\": \"centralus\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name to disable monitoring. Set to true if monitoring should be disabled\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/azureFirewalls\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/activityLogAlerts\",\r\n \"name\": \"ActivityAzureFirewallDelete\",\r\n \"existenceScope\": \"resourceGroup\",\r\n \"resourceGroupName\": \"[[parameters('alertResourceGroupName')]\",\r\n \"deploymentScope\": \"subscription\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"count\": {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*]\",\r\n \"where\": {\r\n \"anyOf\": [\r\n {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].field\",\r\n \"equals\": \"category\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].equals\",\r\n \"equals\": \"Administrative\"\r\n }\r\n ]\r\n },\r\n {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].field\",\r\n \"equals\": \"operationName\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/ActivityLogAlerts/condition.allOf[*].equals\",\r\n \"equals\": \"Microsoft.Network/azureFirewalls/delete\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n },\r\n \"equals\": 2\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"location\": \"northeurope\",\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"alertResourceGroupName\": {\r\n \"type\": \"string\"\r\n },\r\n \"alertResourceGroupTags\": {\r\n \"type\": \"object\"\r\n },\r\n \"alertResourceGroupLocation\": {\r\n \"type\": \"string\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"string\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Resources/resourceGroups\",\r\n \"apiVersion\": \"2020-10-01\",\r\n \"name\": \"[[parameters('alertResourceGroupName')]\",\r\n \"location\": \"[[parameters('alertResourceGroupLocation')]\",\r\n \"tags\": \"[[parameters('alertResourceGroupTags')]\"\r\n },\r\n {\r\n \"type\": \"Microsoft.Resources/deployments\",\r\n \"apiVersion\": \"2019-10-01\",\r\n \"name\": \"ActivityAzureFirewallDelete\",\r\n \"resourceGroup\": \"[[parameters('alertResourceGroupName')]\",\r\n \"dependsOn\": [\r\n \"[[concat('Microsoft.Resources/resourceGroups/', parameters('alertResourceGroupName'))]\"\r\n ],\r\n \"properties\": {\r\n \"mode\": \"Incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"type\": \"string\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"type\": \"string\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"microsoft.insights/activityLogAlerts\",\r\n \"apiVersion\": \"2020-10-01\",\r\n \"name\": \"ActivityAzureFirewallDelete\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Activity Log Firewall Delete\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[subscription().id]\"\r\n ],\r\n \"condition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"category\",\r\n \"equals\": \"Administrative\"\r\n },\r\n {\r\n \"field\": \"operationName\",\r\n \"equals\": \"Microsoft.Network/azurefirewalls/delete\"\r\n },\r\n {\r\n \"field\": \"status\",\r\n \"containsAny\": [\r\n \"succeeded\"\r\n ]\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"value\": \"[[parameters('alertResourceGroupName')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"alertResourceGroupName\": {\r\n \"value\": \"[[parameters('alertResourceGroupName')]\"\r\n },\r\n \"alertResourceGroupTags\": {\r\n \"value\": \"[[parameters('alertResourceGroupTags')]\"\r\n },\r\n \"alertResourceGroupLocation\": {\r\n \"value\": \"[[parameters('alertResourceGroupLocation')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#1": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AFW_FirewallHealth_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AFW FirewallHealth Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Firewall FirewallHealth Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/azureFirewalls\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/azureFirewalls\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"FirewallHealth\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/azureFirewalls/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-FirewallHealth-threshold-Override_'), field('tags._amba-FirewallHealth-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-FirewallHealth')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for AFW FirewallHealth\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"FirewallHealth\",\r\n \"metricNamespace\": \"Microsoft.Network/azureFirewalls\",\r\n \"metricName\": \"FirewallHealth\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-FirewallHealth-threshold-Override_'), field('tags._amba-FirewallHealth-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#10": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRouteBitsIn_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute Bits In Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct Connection BitsInPerSecond Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"1\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"PortBitsInPerSecond\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-PortBitsInPerSecond-threshold-Override_'), field('tags._amba-PortBitsInPerSecond-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERBitsInAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection BitsInPerSecond\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"PortBitsInPerSecond\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"PortBitsInPerSecond\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-PortBitsInPerSecond-threshold-Override_'), field('tags._amba-PortBitsInPerSecond-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#11": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRouteBitsOut_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute Bits Out Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct Connection BitsOutPerSecond Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"1\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"PortBitsOutPerSecond\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-PortBitsOutPerSecond-threshold-Override_'), field('tags._amba-PortBitsOutPerSecond-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERBitsOutAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection BitsOutPerSecond\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"PortBitsOutPerSecond\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"PortBitsOutPerSecond\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-PortBitsOutPerSecond-threshold-Override_'), field('tags._amba-PortBitsOutPerSecond-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#12": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRoutLineProtocol_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute LineProtocol Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct LineProtocol Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"0.9\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"LineProtocol\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-LineProtocol-threshold-Override_'), field('tags._amba-LineProtocol-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERLineProtocolAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection LineProtocolPerSecond\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"LineProtocol\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"LineProtocol\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-LineProtocol-threshold-Override_'), field('tags._amba-LineProtocol-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#10": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ERP_ExpressRouteBitsIn_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ER Direct ExpressRoute Bits In Alert\",\n \"description\": \"Policy to audit/deploy ER Direct Connection BitsInPerSecond Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"0\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"1\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"disabled\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"PortBitsInPerSecond\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-PortBitsInPerSecond-threshold-Override_'), field('tags._amba-PortBitsInPerSecond-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERBitsInAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ER Direct Connection BitsInPerSecond\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"PortBitsInPerSecond\",\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\n \"metricName\": \"PortBitsInPerSecond\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-PortBitsInPerSecond-threshold-Override_'), field('tags._amba-PortBitsInPerSecond-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#11": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ERP_ExpressRouteBitsOut_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ER Direct ExpressRoute Bits Out Alert\",\n \"description\": \"Policy to audit/deploy ER Direct Connection BitsOutPerSecond Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"0\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"1\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"disabled\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"PortBitsOutPerSecond\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-PortBitsOutPerSecond-threshold-Override_'), field('tags._amba-PortBitsOutPerSecond-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERBitsOutAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ER Direct Connection BitsOutPerSecond\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"PortBitsOutPerSecond\",\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\n \"metricName\": \"PortBitsOutPerSecond\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-PortBitsOutPerSecond-threshold-Override_'), field('tags._amba-PortBitsOutPerSecond-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#12": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ERP_ExpressRoutLineProtocol_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ER Direct ExpressRoute LineProtocol Alert\",\n \"description\": \"Policy to audit/deploy ER Direct LineProtocol Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"0\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"0.9\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"disabled\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"LineProtocol\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-LineProtocol-threshold-Override_'), field('tags._amba-LineProtocol-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERLineProtocolAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ER Direct Connection LineProtocolPerSecond\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"LineProtocol\",\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\n \"metricName\": \"LineProtocol\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-LineProtocol-threshold-Override_'), field('tags._amba-LineProtocol-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#13": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRoutRxLightLevel_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute RxLightLevel High Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct RxLightLevel High Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"1\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"0\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"RxLightLevel\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-RxLightLevel-High-threshold-Override_'), field('tags._amba-RxLightLevel-High-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERRxLightLevelHighAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection RxLightLevelHigh\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"RxLightLevel\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"RxLightLevel\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-RxLightLevel-High-threshold-Override_'), field('tags._amba-RxLightLevel-High-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#14": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRoutRxLightLevellow_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute RxLightLevel Low Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct RxLightLevel Low Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"1\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"-10\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"RxLightLevel\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-RxLightLevel-Low-threshold-Override_'), field('tags._amba-RxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERRxLightLevelLowAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection RxLightLevelLow\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"RxLightLevel\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"RxLightLevel\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-RxLightLevel-Low-threshold-Override_'), field('tags._amba-RxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#15": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRoutTxLightLevell_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute TxLightLevel High Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct TxLightLevel High Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"1\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"0\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"TxLightLevel\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-High-threshold-Override_'), field('tags._amba-TxLightLevel-High-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERTxLightLevelHighAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection TxLightLevelHigh\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"TxLightLevel\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"TxLightLevel\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-High-threshold-Override_'), field('tags._amba-TxLightLevel-High-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#16": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERP_ExpressRoutTxLightLevellow_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ER Direct ExpressRoute TxLightLevel Low Alert\",\r\n \"description\": \"Policy to audit/deploy ER Direct TxLightLevel Low Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"1\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"-10\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"TxLightLevel\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-Low-threshold-Override_'), field('tags._amba-TxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERTxLightLevelLowAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ER Direct Connection TxLightLevelLow\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"TxLightLevel\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\r\n \"metricName\": \"TxLightLevel\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-Low-threshold-Override_'), field('tags._amba-TxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#14": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ERP_ExpressRoutRxLightLevellow_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ER Direct ExpressRoute RxLightLevel Low Alert\",\n \"description\": \"Policy to audit/deploy ER Direct RxLightLevel Low Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"1\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"-10\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"disabled\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"RxLightLevel\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-RxLightLevel-Low-threshold-Override_'), field('tags._amba-RxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERRxLightLevelLowAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ER Direct Connection RxLightLevelLow\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"RxLightLevel\",\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\n \"metricName\": \"RxLightLevel\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-RxLightLevel-Low-threshold-Override_'), field('tags._amba-RxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#15": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ERP_ExpressRoutTxLightLevell_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ER Direct ExpressRoute TxLightLevel High Alert\",\n \"description\": \"Policy to audit/deploy ER Direct TxLightLevel High Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"1\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"0\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"disabled\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"TxLightLevel\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-High-threshold-Override_'), field('tags._amba-TxLightLevel-High-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERTxLightLevelHighAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ER Direct Connection TxLightLevelHigh\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"TxLightLevel\",\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\n \"metricName\": \"TxLightLevel\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-High-threshold-Override_'), field('tags._amba-TxLightLevel-High-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#16": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ERP_ExpressRoutTxLightLevellow_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ER Direct ExpressRoute TxLightLevel Low Alert\",\n \"description\": \"Policy to audit/deploy ER Direct TxLightLevel Low Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"1\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"-10\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"disabled\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/expressRoutePorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"TxLightLevel\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRoutePorts/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-Low-threshold-Override_'), field('tags._amba-TxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-DirectERTxLightLevelLowAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ER Direct Connection TxLightLevelLow\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"TxLightLevel\",\n \"metricNamespace\": \"Microsoft.Network/expressRoutePorts\",\n \"metricName\": \"TxLightLevel\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-TxLightLevel-Low-threshold-Override_'), field('tags._amba-TxLightLevel-Low-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#17": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_PDNSZ_CapacityUtil_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy PDNSZ Capacity Utilization Alert\",\r\n \"description\": \"Policy to audit/deploy Private DNS Zone Capacity Utilization Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"80\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/privateDnsZones\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/privateDnsZones\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"VirtualNetworkLinkCapacityUtilization\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/privateDnsZones/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Maximum\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThanOrEqual\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-VirtualNetworkLinkCapacityUtilization-threshold-Override_'), field('tags._amba-VirtualNetworkLinkCapacityUtilization-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-CapacityUtilizationAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Private DNS Zone Virtual Network Link Capacity Utilization\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"VirtualNetworkLinkCapacityUtilization\",\r\n \"metricNamespace\": \"Microsoft.Network/privateDnsZones\",\r\n \"metricName\": \"VirtualNetworkLinkCapacityUtilization\",\r\n \"operator\": \"GreaterThanOrEqual\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Maximum\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-VirtualNetworkLinkCapacityUtilization-threshold-Override_'), field('tags._amba-VirtualNetworkLinkCapacityUtilization-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#18": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_PDNSZ_QueryVolume_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy PDNSZ Query Volume Alert\",\r\n \"description\": \"Policy to audit/deploy Private DNS Zone Query Volume Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"4\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"500\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/privateDnsZones\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/privateDnsZones\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"QueryVolume\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/privateDnsZones/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Total\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThanOrEqual\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-QueryVolume-threshold-Override_'), field('tags._amba-QueryVolume-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-QueryVolumeAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Private DNS Query Volume\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"QueryVolume\",\r\n \"metricNamespace\": \"Microsoft.Network/privateDnsZones\",\r\n \"metricName\": \"QueryVolume\",\r\n \"operator\": \"GreaterThanOrEqual\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Total\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-QueryVolume-threshold-Override_'), field('tags._amba-QueryVolume-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#19": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_PDNSZ_RecordSetCapacity_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy PDNSZ Record Set Capacity Alert\",\r\n \"description\": \"Policy to audit/deploy Private DNS Zone Record Set Capacity Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1H\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"80\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/privateDnsZones\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/privateDnsZones\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"RecordSetCapacityUtilization\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/privateDnsZones/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Maximum\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThanOrEqual\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-RecordSetCapacityUtilization-threshold-Override_'), field('tags._amba-RecordSetCapacityUtilization-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-RecordSet_Capacity_Utilization')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Private DNS Zone Record Set Capacity Utilization\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"RecordSetCapacityUtilization\",\r\n \"metricNamespace\": \"Microsoft.Network/privateDnsZones\",\r\n \"metricName\": \"RecordSetCapacityUtilization\",\r\n \"operator\": \"GreaterThanOrEqual\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Maximum\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-RecordSetCapacityUtilization-threshold-Override_'), field('tags._amba-RecordSetCapacityUtilization-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", @@ -148,27 +148,27 @@ "$fxv#36": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_VPNGw_Ingress_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy VPNG Ingress Alert\",\r\n \"description\": \"Policy to audit/deploy VPN Gateway Ingress Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"1\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"microsoft.network/vpngateways\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"microsoft.network/vpngateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"tunnelingressbytes\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/microsoft.network/vpngateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-tunnelingressbytes-threshold-Override_'), field('tags._amba-tunnelingressbytes-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-TunnelIngressAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for VPN Gateway tunnel ingress bytes\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"tunnelingressbytes\",\r\n \"metricNamespace\": \"microsoft.network/vpngateways\",\r\n \"metricName\": \"tunnelingressbytes\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-tunnelingressbytes-threshold-Override_'), field('tags._amba-tunnelingressbytes-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#37": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_VPNGw_TunnelIngressPacketDropCount_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy VPNG Ingress Packet Drop Count Alert\",\r\n \"description\": \"Policy to audit/deploy VPN Gateway Ingress Packet Drop Count Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"3\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"4\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"4\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"microsoft.network/vpngateways\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"microsoft.network/vpngateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"TunnelIngressPacketDropCount\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/microsoft.network/vpngateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-TunnelIngressPacketDropCountAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for VPN Gateway tunnel TunnelIngressPacketDropCount\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"TunnelIngressPacketDropCount\",\r\n \"metricNamespace\": \"microsoft.network/vpngateways\",\r\n \"metricName\": \"TunnelIngressPacketDropCount\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#38": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_VPNGw_TunnelIngressPacketDropMismatch_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy VPNG Ingress Packet Drop Mismatch Alert\",\r\n \"description\": \"Policy to audit/deploy VPN Gateway Ingress Packet Drop Mismatch Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"3\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"4\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"4\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"microsoft.network/vpngateways\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"microsoft.network/vpngateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"TunnelIngressPacketDropTSMismatch\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/microsoft.network/vpngateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-TunnelIngressPacketDropTSMismatchAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for VPN Gateway tunnel TunnelIngressPacketDropTSMismatch\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"TunnelIngressPacketDropTSMismatch\",\r\n \"metricNamespace\": \"microsoft.network/vpngateways\",\r\n \"metricName\": \"TunnelIngressPacketDropTSMismatch\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#39": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_ApplicationGatewayTotalTime_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW ApplicationGatewayTotalTime Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway ApplicationGatewayTotalTime Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.4.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert Sensitivity\",\r\n \"description\": \"Alert Sensitivity for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"Low\",\r\n \"Medium\",\r\n \"High\"\r\n ],\r\n \"defaultValue\": \"Medium\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\r\n \"In\": [\r\n \"Standard_v2\",\r\n \"WAF_v2\"\r\n ]\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"ApplicationGatewayTotalTime\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agApplicationGatewayTotalTime')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway ApplicationGatewayTotalTime\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"ApplicationGatewayTotalTime\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"ApplicationGatewayTotalTime\",\r\n \"operator\": \"GreaterThan\",\r\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#39": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_ApplicationGatewayTotalTime_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW ApplicationGatewayTotalTime Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway ApplicationGatewayTotalTime Alert\",\n \"metadata\": {\n \"version\": \"1.4.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert Sensitivity\",\n \"description\": \"Alert Sensitivity for the alert\"\n },\n \"allowedValues\": [\n \"Low\",\n \"Medium\",\n \"High\"\n ],\n \"defaultValue\": \"Medium\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"failingPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Failing Periods\",\n \"description\": \"Number of failing periods before alert is fired\"\n },\n \"defaultValue\": \"2\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Periods\",\n \"description\": \"The number of aggregated lookback points.\"\n },\n \"defaultValue\": \"2\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\n \"In\": [\n \"Standard_v2\",\n \"WAF_v2\"\n ]\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"ApplicationGatewayTotalTime\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\n \"equals\": \"[[parameters('alertSensitivity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\n \"equals\": \"[[parameters('failingPeriods')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\n \"equals\": \"[[parameters('evaluationPeriods')]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"failingPeriods\": {\n \"type\": \"String\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agApplicationGatewayTotalTime')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway ApplicationGatewayTotalTime\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"ApplicationGatewayTotalTime\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"ApplicationGatewayTotalTime\",\n \"operator\": \"GreaterThan\",\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\n \"failingPeriods\": {\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\n },\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"DynamicThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#4": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERCIR_BgpAvailability_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ExpressRoute Circuits Bgp Availability Alert\",\r\n \"description\": \"Policy to audit/deploy ExpressRoute Circuits Bgp Availability Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRouteCircuits\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRouteCircuits\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"BgpAvailability\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRouteCircuits/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-BgpAvailability-threshold-Override_'), field('tags._amba-BgpAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-BgpAvailability')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ExpressRoute Circuit Bgp Availability\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"BgpAvailability\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRouteCircuits\",\r\n \"metricName\": \"BgpAvailability\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-BgpAvailability-threshold-Override_'), field('tags._amba-BgpAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#40": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_BackendLastByteResponseTime_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW BackendLastByteResponseTime Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway BackendLastByteResponseTime Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.4.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert Sensitivity\",\r\n \"description\": \"Alert Sensitivity for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"Low\",\r\n \"Medium\",\r\n \"High\"\r\n ],\r\n \"defaultValue\": \"Medium\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\r\n \"In\": [\r\n \"Standard_v2\",\r\n \"WAF_v2\"\r\n ]\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"BackendLastByteResponseTime\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agBackendLastByteResponseTime')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway BackendLastByteResponseTime\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"BackendLastByteResponseTime\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"BackendLastByteResponseTime\",\r\n \"operator\": \"GreaterThan\",\r\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#41": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_CapacityUnits_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW Capacity Units Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway CapacityUnits Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"75\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\r\n \"In\": [\r\n \"Standard_v2\",\r\n \"WAF_v2\"\r\n ]\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"CapacityUnits\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-CapacityUnits-threshold-Override_'), field('tags._amba-CapacityUnits-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agCapacityUnits')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway Capacity Units\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"CapacityUnits\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"CapacityUnits\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-CapacityUnits-threshold-Override_'), field('tags._amba-CapacityUnits-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#42": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_ComputeUnits_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW Compute Units Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway ComputeUnits Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"75\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\r\n \"In\": [\r\n \"Standard_v2\",\r\n \"WAF_v2\"\r\n ]\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"ComputeUnits\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-ComputeUnits-threshold-Override_'), field('tags._amba-ComputeUnits-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agComputeUnits')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway Compute Units\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"ComputeUnits\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"ComputeUnits\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-ComputeUnits-threshold-Override_'), field('tags._amba-ComputeUnits-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#43": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_CPUUtilization_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW CPU Utilization Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway CPU Utilization Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"80\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\r\n \"notIn\": [\r\n \"Standard_v2\",\r\n \"WAF_v2\"\r\n ]\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"CpuUtilization\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-CpuUtilization-threshold-Override_'), field('tags._amba-CpuUtilization-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agCpuUtilization')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway CPU Utilization\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"CpuUtilization\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"CpuUtilization\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-CpuUtilization-threshold-Override_'), field('tags._amba-CpuUtilization-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#44": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_FailedRequests_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW FailedRequests Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway FailedRequests Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert Sensitivity\",\r\n \"description\": \"Alert Sensitivity for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"Low\",\r\n \"Medium\",\r\n \"High\"\r\n ],\r\n \"defaultValue\": \"Medium\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"FailedRequests\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Total\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agFailedRequests')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway FailedRequests\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"FailedRequests\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"FailedRequests\",\r\n \"operator\": \"GreaterThan\",\r\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"timeAggregation\": \"Total\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#45": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_ResponseStatus_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW ResponseStatus Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway ResponseStatus Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert Sensitivity\",\r\n \"description\": \"Alert Sensitivity for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"Low\",\r\n \"Medium\",\r\n \"High\"\r\n ],\r\n \"defaultValue\": \"Medium\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"ResponseStatus\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Total\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"alertSensitivity\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agResponseStatus')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway ResponseStatus\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"ResponseStatus\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"ResponseStatus\",\r\n \"operator\": \"GreaterThan\",\r\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"timeAggregation\": \"Total\",\r\n \"dimensions\": [\r\n {\r\n \"name\": \"HttpStatusGroup\",\r\n \"operator\": \"Include\",\r\n \"values\": [\r\n \"4xx\",\r\n \"5xx\"\r\n ]\r\n }\r\n ],\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"alertSensitivity\": {\r\n \"value\": \"[[parameters('alertSensitivity')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#46": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_AG_UnhealthyHostCount_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy AGW Unhealthy Host Count Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Application Gateway Unhealthy Host Count Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"20\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/applicationgateways\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"UnhealthyHostCount\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-UnhealthyHostCount-threshold-Override_'), field('tags._amba-UnhealthyHostCount-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-agUnhealthyHostCount')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Gateway Unhealthy Host Count\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"CpuUtilization\",\r\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\r\n \"metricName\": \"UnhealthyHostCount\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-UnhealthyHostCount-threshold-Override_'), field('tags._amba-UnhealthyHostCount-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#47": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_TM_EndpointHealth_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy Traffic Manager Endpoint Health Alert\",\r\n \"description\": \"Policy to audit/deploy FTraffic Manager Endpoint Health Health Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"0.9\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/trafficmanagerprofiles\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/trafficmanagerprofiles\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"ProbeAgentCurrentEndpointStateByProfileResourceId\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/trafficmanagerprofiles/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-EndpointHealth-threshold-Override_'), field('tags._amba-EndpointHealth-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-EndpointHealthAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Traffic Manager Endpoint Health\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"EndpointHealth\",\r\n \"metricNamespace\": \"Microsoft.Network/trafficmanagerprofiles\",\r\n \"metricName\": \"ProbeAgentCurrentEndpointStateByProfileResourceId\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\",\r\n \"dimensions\": [\r\n {\r\n \"name\": \"EndpointName\",\r\n \"operator\": \"Include\",\r\n \"values\": [\r\n \"*\"\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-EndpointHealth-threshold-Override_'), field('tags._amba-EndpointHealth-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#40": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_BackendLastByteResponseTime_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW BackendLastByteResponseTime Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway BackendLastByteResponseTime Alert\",\n \"metadata\": {\n \"version\": \"1.4.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert Sensitivity\",\n \"description\": \"Alert Sensitivity for the alert\"\n },\n \"allowedValues\": [\n \"Low\",\n \"Medium\",\n \"High\"\n ],\n \"defaultValue\": \"Medium\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"failingPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Failing Periods\",\n \"description\": \"Number of failing periods before alert is fired\"\n },\n \"defaultValue\": \"2\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Periods\",\n \"description\": \"The number of aggregated lookback points.\"\n },\n \"defaultValue\": \"2\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\n \"In\": [\n \"Standard_v2\",\n \"WAF_v2\"\n ]\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"BackendLastByteResponseTime\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\n \"equals\": \"[[parameters('alertSensitivity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\n \"equals\": \"[[parameters('failingPeriods')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\n \"equals\": \"[[parameters('evaluationPeriods')]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"failingPeriods\": {\n \"type\": \"String\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agBackendLastByteResponseTime')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway BackendLastByteResponseTime\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"BackendLastByteResponseTime\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"BackendLastByteResponseTime\",\n \"operator\": \"GreaterThan\",\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\n \"failingPeriods\": {\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\n },\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"DynamicThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#41": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_CapacityUnits_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW Capacity Units Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway CapacityUnits Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"75\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\n \"In\": [\n \"Standard_v2\",\n \"WAF_v2\"\n ]\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"CapacityUnits\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-CapacityUnits-threshold-Override_'), field('tags._amba-CapacityUnits-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agCapacityUnits')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway Capacity Units\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"CapacityUnits\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"CapacityUnits\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-CapacityUnits-threshold-Override_'), field('tags._amba-CapacityUnits-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#42": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_ComputeUnits_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW Compute Units Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway ComputeUnits Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"75\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\n \"In\": [\n \"Standard_v2\",\n \"WAF_v2\"\n ]\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"ComputeUnits\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-ComputeUnits-threshold-Override_'), field('tags._amba-ComputeUnits-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agComputeUnits')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway Compute Units\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"ComputeUnits\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"ComputeUnits\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-ComputeUnits-threshold-Override_'), field('tags._amba-ComputeUnits-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#43": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_CPUUtilization_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW CPU Utilization Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway CPU Utilization Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"80\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Network/applicationgateways/sku.name\",\n \"notIn\": [\n \"Standard_v2\",\n \"WAF_v2\"\n ]\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"CpuUtilization\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-CpuUtilization-threshold-Override_'), field('tags._amba-CpuUtilization-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agCpuUtilization')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway CPU Utilization\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"CpuUtilization\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"CpuUtilization\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-CpuUtilization-threshold-Override_'), field('tags._amba-CpuUtilization-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#44": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_FailedRequests_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW FailedRequests Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway FailedRequests Alert\",\n \"metadata\": {\n \"version\": \"1.3.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert Sensitivity\",\n \"description\": \"Alert Sensitivity for the alert\"\n },\n \"allowedValues\": [\n \"Low\",\n \"Medium\",\n \"High\"\n ],\n \"defaultValue\": \"Medium\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"failingPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Failing Periods\",\n \"description\": \"Number of failing periods before alert is fired\"\n },\n \"defaultValue\": \"2\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Periods\",\n \"description\": \"The number of aggregated lookback points.\"\n },\n \"defaultValue\": \"2\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"FailedRequests\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Total\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\n \"equals\": \"[[parameters('alertSensitivity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\n \"equals\": \"[[parameters('failingPeriods')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\n \"equals\": \"[[parameters('evaluationPeriods')]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"failingPeriods\": {\n \"type\": \"String\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agFailedRequests')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway FailedRequests\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"FailedRequests\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"FailedRequests\",\n \"operator\": \"GreaterThan\",\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\n \"failingPeriods\": {\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\n },\n \"timeAggregation\": \"Total\",\n \"criterionType\": \"DynamicThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#45": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_ResponseStatus_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW ResponseStatus Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway ResponseStatus Alert\",\n \"metadata\": {\n \"version\": \"1.3.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert Sensitivity\",\n \"description\": \"Alert Sensitivity for the alert\"\n },\n \"allowedValues\": [\n \"Low\",\n \"Medium\",\n \"High\"\n ],\n \"defaultValue\": \"Medium\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"failingPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Failing Periods\",\n \"description\": \"Number of failing periods before alert is fired\"\n },\n \"defaultValue\": \"2\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Periods\",\n \"description\": \"The number of aggregated lookback points.\"\n },\n \"defaultValue\": \"2\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"ResponseStatus\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Total\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\n \"equals\": \"[[parameters('alertSensitivity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\n \"equals\": \"[[parameters('failingPeriods')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\n \"equals\": \"[[parameters('evaluationPeriods')]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"alertSensitivity\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"failingPeriods\": {\n \"type\": \"String\"\n },\n \"evaluationPeriods\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agResponseStatus')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway ResponseStatus\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"ResponseStatus\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"ResponseStatus\",\n \"operator\": \"GreaterThan\",\n \"alertSensitivity\": \"[[parameters('alertSensitivity')]\",\n \"failingPeriods\": {\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\n },\n \"timeAggregation\": \"Total\",\n \"dimensions\": [\n {\n \"name\": \"HttpStatusGroup\",\n \"operator\": \"Include\",\n \"values\": [\n \"4xx\",\n \"5xx\"\n ]\n }\n ],\n \"criterionType\": \"DynamicThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"alertSensitivity\": {\n \"value\": \"[[parameters('alertSensitivity')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"failingPeriods\": {\n \"value\": \"[[parameters('failingPeriods')]\"\n },\n \"evaluationPeriods\": {\n \"value\": \"[[parameters('evaluationPeriods')]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#46": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_AG_UnhealthyHostCount_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy AGW Unhealthy Host Count Alert\",\n \"description\": \"Policy to audit/deploy Azure Application Gateway Unhealthy Host Count Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"20\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/applicationgateways\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"UnhealthyHostCount\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationgateways/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-UnhealthyHostCount-threshold-Override_'), field('tags._amba-UnhealthyHostCount-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-agUnhealthyHostCount')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Gateway Unhealthy Host Count\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"CpuUtilization\",\n \"metricNamespace\": \"Microsoft.Network/applicationgateways\",\n \"metricName\": \"UnhealthyHostCount\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-UnhealthyHostCount-threshold-Override_'), field('tags._amba-UnhealthyHostCount-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#47": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_TM_EndpointHealth_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy Traffic Manager Endpoint Health Alert\",\n \"description\": \"Policy to audit/deploy FTraffic Manager Endpoint Health Health Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"0.9\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/trafficmanagerprofiles\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/trafficmanagerprofiles\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"ProbeAgentCurrentEndpointStateByProfileResourceId\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/trafficmanagerprofiles/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-EndpointHealth-threshold-Override_'), field('tags._amba-EndpointHealth-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-EndpointHealthAlert')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for Traffic Manager Endpoint Health\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"EndpointHealth\",\n \"metricNamespace\": \"Microsoft.Network/trafficmanagerprofiles\",\n \"metricName\": \"ProbeAgentCurrentEndpointStateByProfileResourceId\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\",\n \"dimensions\": [\n {\n \"name\": \"EndpointName\",\n \"operator\": \"Include\",\n \"values\": [\n \"*\"\n ]\n }\n ]\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-EndpointHealth-threshold-Override_'), field('tags._amba-EndpointHealth-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#48": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_FD_BackendHealth_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy Frontdoor Backend Health Percentage Alert\",\r\n \"description\": \"Policy to audit/deploy FrontDoor Backend Health Percentage Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.1.1\",\r\n \"category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name to disable monitoring. Set to true if monitoring should be disabled\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/frontdoors\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/frontdoors\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"BackendHealthPercentage\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/frontdoors/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-BackendHealthPercentage-threshold-Override_'), field('tags._amba-BackendHealthPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-BackendHealthPercentage')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Frontdoor Backend Health Percentage\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"BackendHealthPercentage\",\r\n \"metricNamespace\": \"Microsoft.Network/frontdoors\",\r\n \"metricName\": \"BackendHealthPercentage\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-BackendHealthPercentage-threshold-Override_'), field('tags._amba-BackendHealthPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#49": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_FD_BackendRequestLatency_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy Frontdoor Backend Request Latency Alert\",\r\n \"description\": \"Policy to audit/deploy Frontdoor Backend Request Latency Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/frontdoors\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/frontdoors\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"BackendRequestLatency\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/frontdoors/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": 2\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": 2\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-BackendRequestLatencyAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Frontdoor BackendRequestLatency\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": 2,\r\n \"minFailingPeriodsToAlert\": 2\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Network/frontdoors\",\r\n \"metricName\": \"BackendRequestLatency\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#5": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERCIR_QosDropBitsInPerSecond_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ExpressRoute Circuits QosDropBitsInPerSecond Alert\",\r\n \"description\": \"Policy to audit/deploy ExpressRoute Circuits QosDropBitsInPerSecond Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRouteCircuits\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRouteCircuits\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"QosDropBitsInPerSecond\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRouteCircuits/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-QosDropBitsInPerSecond')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ExpressRoute Circuit QosDropBitsInPerSecond\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"QosDropBitsInPerSecond\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRouteCircuits\",\r\n \"metricName\": \"QosDropBitsInPerSecond\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#50": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_FrontDoorCDN_OriginHealthPercentage_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy FrontDoor CDN Profile Origin Health Percentage Alert\",\r\n \"description\": \"Policy to audit/deploy FrontDoor Origin Health Percentage Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.1\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"OriginHealthPercentage\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Cdn/profiles/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-OriginHealthPercentage-threshold-Override_'), field('tags._amba-OriginHealthPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-OriginHealthPercentage')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Frontdoor Origin Health Percentage\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"OriginHealthPercentage\",\r\n \"metricNamespace\": \"Microsoft.Cdn/profiles\",\r\n \"metricName\": \"OriginHealthPercentage\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-OriginHealthPercentage-threshold-Override_'), field('tags._amba-OriginHealthPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#50": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_FrontDoorCDN_OriginHealthPercentage_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy FrontDoor CDN Profile Origin Health Percentage Alert\",\n \"description\": \"Policy to audit/deploy FrontDoor Origin Health Percentage Alert\",\n \"metadata\": {\n \"version\": \"1.2.2\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"90\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Cdn/profiles\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Cdn/profiles\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"OriginHealthPercentage\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Cdn/profiles/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-OriginHealthPercentage-threshold-Override_'), field('tags._amba-OriginHealthPercentage-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-OriginHealthPercentage')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for Frontdoor Origin Health Percentage\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"OriginHealthPercentage\",\n \"metricNamespace\": \"Microsoft.Cdn/profiles\",\n \"metricName\": \"OriginHealthPercentage\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-OriginHealthPercentage-threshold-Override_'), field('tags._amba-OriginHealthPercentage-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#51": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_FrontDoorCDN_OriginLatency_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy FrontDoor CDN Profile Origin Latency Alert\",\r\n \"description\": \"Policy to audit/deploy FrontDoor CDN Profile Origin Latency Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"OriginLatency\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Cdn/profiles/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-OriginLatencyAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Frontdoor CDN Origin Latency\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Cdn/profiles\",\r\n \"metricName\": \"OriginLatency\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#52": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_FrontDoorCDN_Percentage4XX_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy FrontDoor CDN Profile Percentage4XX Alert\",\r\n \"description\": \"Policy to audit/deploy FrontDoor CDN Profile Percentage4XX Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"Percentage4XX\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Cdn/profiles/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-Percentage4XXAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Frontdoor CDN Origin Latency\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Cdn/profiles\",\r\n \"metricName\": \"Percentage4XX\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#53": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_FrontDoorCDN_Percentage5XX_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy FrontDoor CDN Profile Percentage5XX Alert\",\r\n \"description\": \"Policy to audit/deploy FrontDoor CDN Profile Percentage5XX Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Cdn/profiles\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"Percentage5XX\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Cdn/profiles/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-Percentage5XXAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Frontdoor CDN Origin Latency\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Cdn/profiles\",\r\n \"metricName\": \"Percentage5XX\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#54": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ALB_DataPathAvailability_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ALB Data Path Availability Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Load Balancer Data Path Availability Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/loadBalancers/sku.name\",\r\n \"in\": [\r\n \"Standard\",\r\n \"Gateway\"\r\n ]\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"VipAvailability\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-VipAvailability-threshold-Override_'), field('tags._amba-VipAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-ALBDataPathAvailability')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ALB Data Path Availability\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"VipAvailability\",\r\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\r\n \"metricName\": \"VipAvailability\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-VipAvailability-threshold-Override_'), field('tags._amba-VipAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#55": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ALB_GlobalBackendAvailability_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ALB Global Backend Availability Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Load Balancer Global Backend Availability Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"0\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/loadBalancers/sku.tier\",\r\n \"equals\": \"Global\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"GlobalBackendAvailability\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-GlobalBackendAvailability-threshold-Override_'), field('tags._amba-GlobalBackendAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-ALBGlobalBackendAvailability')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Global Backend Availability\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"GlobalBackendAvailability\",\r\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\r\n \"metricName\": \"GlobalBackendAvailability\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-GlobalBackendAvailability-threshold-Override_'), field('tags._amba-GlobalBackendAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#56": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ALB_HealthProbeStatus_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ALB Health Probe Status Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Load Balancer Health Probe Status Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/loadBalancers/sku.name\",\r\n \"in\": [\r\n \"Standard\",\r\n \"Gateway\"\r\n ]\r\n },\r\n {\r\n \"field\": \"Microsoft.Network/loadBalancers/sku.tier\",\r\n \"equals\": \"Regional\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"DipAvailability\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"LessThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-DipAvailability-threshold-Override_'), field('tags._amba-DipAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-ALBHealthProbeStatus')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ALB Health Probe Status\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"DipAvailability\",\r\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\r\n \"metricName\": \"DipAvailability\",\r\n \"operator\": \"LessThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-DipAvailability-threshold-Override_'), field('tags._amba-DipAvailability-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#57": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ALB_UsedSNATPorts_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ALB Used SNAT Ports Alert\",\r\n \"description\": \"Policy to audit/deploy Azure Load Balancer Used SNAT Ports Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Networking\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"1\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT1M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"900\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/loadBalancers\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"UsedSNATPorts\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-UsedSNATPorts-threshold-Override_'), field('tags._amba-UsedSNATPorts-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-ALBUsedSNATPorts')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ALB Used SNAT Ports\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"UsedSNATPorts\",\r\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\r\n \"metricName\": \"UsedSNATPorts\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-UsedSNATPorts-threshold-Override_'), field('tags._amba-UsedSNATPorts-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#54": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ALB_DataPathAvailability_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ALB Data Path Availability Alert\",\n \"description\": \"Policy to audit/deploy Azure Load Balancer Data Path Availability Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"0\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"90\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Network/loadBalancers/sku.name\",\n \"in\": [\n \"Standard\",\n \"Gateway\"\n ]\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"VipAvailability\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-VipAvailability-threshold-Override_'), field('tags._amba-VipAvailability-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-ALBDataPathAvailability')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ALB Data Path Availability\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"VipAvailability\",\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\n \"metricName\": \"VipAvailability\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-VipAvailability-threshold-Override_'), field('tags._amba-VipAvailability-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#55": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ALB_GlobalBackendAvailability_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ALB Global Backend Availability Alert\",\n \"description\": \"Policy to audit/deploy Azure Load Balancer Global Backend Availability Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"0\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"90\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Network/loadBalancers/sku.tier\",\n \"equals\": \"Global\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"GlobalBackendAvailability\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-GlobalBackendAvailability-threshold-Override_'), field('tags._amba-GlobalBackendAvailability-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-ALBGlobalBackendAvailability')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for Global Backend Availability\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"GlobalBackendAvailability\",\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\n \"metricName\": \"GlobalBackendAvailability\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-GlobalBackendAvailability-threshold-Override_'), field('tags._amba-GlobalBackendAvailability-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#56": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ALB_HealthProbeStatus_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ALB Health Probe Status Alert\",\n \"description\": \"Policy to audit/deploy Azure Load Balancer Health Probe Status Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"90\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Network/loadBalancers/sku.name\",\n \"in\": [\n \"Standard\",\n \"Gateway\"\n ]\n },\n {\n \"field\": \"Microsoft.Network/loadBalancers/sku.tier\",\n \"equals\": \"Regional\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"DipAvailability\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"LessThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-DipAvailability-threshold-Override_'), field('tags._amba-DipAvailability-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-ALBHealthProbeStatus')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ALB Health Probe Status\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"DipAvailability\",\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\n \"metricName\": \"DipAvailability\",\n \"operator\": \"LessThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-DipAvailability-threshold-Override_'), field('tags._amba-DipAvailability-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", + "$fxv#57": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_ALB_UsedSNATPorts_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy ALB Used SNAT Ports Alert\",\n \"description\": \"Policy to audit/deploy Azure Load Balancer Used SNAT Ports Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Networking\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"1\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT1M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"900\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Network/loadBalancers\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"UsedSNATPorts\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-UsedSNATPorts-threshold-Override_'), field('tags._amba-UsedSNATPorts-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-ALBUsedSNATPorts')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for ALB Used SNAT Ports\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"UsedSNATPorts\",\n \"metricNamespace\": \"Microsoft.Network/loadBalancers\",\n \"metricName\": \"UsedSNATPorts\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-UsedSNATPorts-threshold-Override_'), field('tags._amba-UsedSNATPorts-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#58": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_PublicIp_BytesInDDoSAttack_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy PIP Bytes in DDoS Attack Alert\",\r\n \"description\": \"Policy to audit/deploy PIP Bytes in DDoS Attack Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"4\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"8000000\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"disabled\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/publicIPAddresses\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/publicIPAddresses\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"bytesinddos\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/publicIPAddresses/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Maximum\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-bytesinddos-threshold-Override_'), field('tags._amba-bytesinddos-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-BytesInDDOSAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Public IP Address Bytes IN DDOS\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"bytesinddos\",\r\n \"metricNamespace\": \"Microsoft.Network/publicIPAddresses\",\r\n \"metricName\": \"bytesinddos\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Maximum\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-bytesinddos-threshold-Override_'), field('tags._amba-bytesinddos-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#59": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_PublicIp_DDoSAttack_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy PIP DDoS Attack Alert\",\r\n \"description\": \"Policy to audit/deploy PIP DDoS Attack Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"1\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"0\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/publicIPAddresses\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/publicIPAddresses\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"ifunderddosattack\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/publicIPAddresses/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Maximum\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-ifunderddosattack-threshold-Override_'), field('tags._amba-ifunderddosattack-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DDOS_Attack')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for Public IP Address Under Attack\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"ifunderddosattack\",\r\n \"metricNamespace\": \"Microsoft.Network/publicIPAddresses\",\r\n \"metricName\": \"ifunderddosattack\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Maximum\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-ifunderddosattack-threshold-Override_'), field('tags._amba-ifunderddosattack-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#6": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_ERCIR_QosDropBitsOutPerSecond_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy ExpressRoute Circuits QosDropBitsOutPerSecond Alert\",\r\n \"description\": \"Policy to audit/deploy ExpressRoute Circuits QosDropBitsOutPerSecond Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Network\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Network/expressRouteCircuits\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Network/expressRouteCircuits\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"QosDropBitsOutPerSecond\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/expressRouteCircuits/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-QosDropBitsOutPerSecond')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for ExpressRoute Circuit QosDropBitsOutPerSecond\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"QosDropBitsOutPerSecond\",\r\n \"metricNamespace\": \"Microsoft.Network/expressRouteCircuits\",\r\n \"metricName\": \"QosDropBitsOutPerSecond\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", diff --git a/patterns/alz/policyDefinitions/policies-Web.json b/patterns/alz/policyDefinitions/policies-Web.json index a85b3c7b5..26bf52d89 100644 --- a/patterns/alz/policyDefinitions/policies-Web.json +++ b/patterns/alz/policyDefinitions/policies-Web.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.19.5.34762", - "templateHash": "18008441162732409292" + "templateHash": "11131297839027302373" } }, "parameters": { @@ -115,10 +115,10 @@ "input": "[json(variables('processPolicySetDefinitionsAzureUSGovernment')[copyIndex('policySetDefinitionsAzureUSGovernment')])]" } ], - "$fxv#0": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_CPUPercentage_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan CPU Percentage Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan CPU Percentage Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"90\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"CpuPercentage\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-CpuPercentage-threshold-Override_'), field('tags._amba-CpuPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-CpuPercentage')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan CPU Percentage\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"CpuPercentage\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"CpuPercentage\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-CpuPercentage-threshold-Override_'), field('tags._amba-CpuPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#0": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_WSF_CPUPercentage_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy App Service Plan CPU Percentage Alert\",\n \"description\": \"Policy to audit/deploy App Service Plan CPU Percentage Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Web Services\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"90\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Web/serverfarms\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Web/serverfarms\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"CpuPercentage\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-CpuPercentage-threshold-Override_'), field('tags._amba-CpuPercentage-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-CpuPercentage')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Service Plan CPU Percentage\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"CpuPercentage\",\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\n \"metricName\": \"CpuPercentage\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-CpuPercentage-threshold-Override_'), field('tags._amba-CpuPercentage-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#1": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_DiskQueueLength_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan Disk Queue Length Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan Disk Queue Length Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"DiskQueueLength\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-DiskQueueLengthAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan Disk Queue Length\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"DiskQueueLength\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "$fxv#2": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_HttpQueueLength_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan Http Queue Length Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan Http Queue Length Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.3.0\",\r\n \"category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"alzCloudEnvironments\": [\r\n \"AzureCloud\"\r\n ],\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Failing Periods\",\r\n \"description\": \"Number of failing periods before alert is fired\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Periods\",\r\n \"description\": \"The number of aggregated lookback points.\"\r\n },\r\n \"defaultValue\": \"2\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"HttpQueueLength\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.alertSensitivity\",\r\n \"equals\": \"Medium\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.minFailingPeriodsToAlert\",\r\n \"equals\": \"[[parameters('failingPeriods')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-MultipleResourceMultipleMetricCriteria.allOf[*].DynamicThresholdCriterion.failingPeriods.numberOfEvaluationPeriods\",\r\n \"equals\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"failingPeriods\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-HttpQueueLengthAlert')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan Http Queue Length\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"alertSensitivity\": \"Medium\",\r\n \"failingPeriods\": {\r\n \"numberOfEvaluationPeriods\": \"[[parameters('evaluationPeriods')]\",\r\n \"minFailingPeriodsToAlert\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"name\": \"ServiceApiResult\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"HttpQueueLength\",\r\n \"operator\": \"GreaterThan\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"DynamicThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"failingPeriods\": {\r\n \"value\": \"[[parameters('failingPeriods')]\"\r\n },\r\n \"evaluationPeriods\": {\r\n \"value\": \"[[parameters('evaluationPeriods')]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "$fxv#3": "{\r\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\r\n \"apiVersion\": \"2021-06-01\",\r\n \"name\": \"Deploy_WSF_MemoryPercentage_Alert\",\r\n \"properties\": {\r\n \"policyType\": \"Custom\",\r\n \"mode\": \"All\",\r\n \"displayName\": \"Deploy App Service Plan Memory Percentage Alert\",\r\n \"description\": \"Policy to audit/deploy App Service Plan Memory Percentage Alert\",\r\n \"metadata\": {\r\n \"version\": \"1.2.0\",\r\n \"Category\": \"Web Services\",\r\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\r\n \"_deployed_by_amba\": \"True\"\r\n },\r\n \"parameters\": {\r\n \"severity\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Severity\",\r\n \"description\": \"Severity of the Alert\"\r\n },\r\n \"allowedValues\": [\r\n \"0\",\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\"\r\n ],\r\n \"defaultValue\": \"2\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Window Size\",\r\n \"description\": \"Window size for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\",\r\n \"PT6H\",\r\n \"PT12H\",\r\n \"P1D\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Evaluation Frequency\",\r\n \"description\": \"Evaluation frequency for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"PT1M\",\r\n \"PT5M\",\r\n \"PT15M\",\r\n \"PT30M\",\r\n \"PT1H\"\r\n ],\r\n \"defaultValue\": \"PT5M\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Auto Mitigate\",\r\n \"description\": \"Auto Mitigate for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Alert State\",\r\n \"description\": \"Alert state for the alert\"\r\n },\r\n \"allowedValues\": [\r\n \"true\",\r\n \"false\"\r\n ],\r\n \"defaultValue\": \"true\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Threshold\",\r\n \"description\": \"Threshold for the alert\"\r\n },\r\n \"defaultValue\": \"85\"\r\n },\r\n \"effect\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"Effect\",\r\n \"description\": \"Effect of the policy\"\r\n },\r\n \"allowedValues\": [\r\n \"deployIfNotExists\",\r\n \"disabled\"\r\n ],\r\n \"defaultValue\": \"deployIfNotExists\"\r\n },\r\n \"MonitorDisableTagName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag name\",\r\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": \"MonitorDisable\"\r\n },\r\n \"MonitorDisableTagValues\": {\r\n \"type\": \"Array\",\r\n \"metadata\": {\r\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\r\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\r\n },\r\n \"defaultValue\": [\r\n \"true\",\r\n \"Test\",\r\n \"Dev\",\r\n \"Sandbox\"\r\n ]\r\n }\r\n },\r\n \"policyRule\": {\r\n \"if\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"type\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\r\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\r\n }\r\n ]\r\n },\r\n \"then\": {\r\n \"effect\": \"[[parameters('effect')]\",\r\n \"details\": {\r\n \"roleDefinitionIds\": [\r\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n ],\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"existenceCondition\": {\r\n \"allOf\": [\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\r\n \"equals\": \"Microsoft.Web/serverfarms\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\r\n \"equals\": \"MemoryPercentage\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\r\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\r\n \"equals\": \"[[parameters('enabled')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\r\n \"equals\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\r\n \"equals\": \"[[parameters('windowSize')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\r\n \"equals\": \"[[parameters('severity')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\r\n \"equals\": \"[[parameters('autoMitigate')]\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\r\n \"equals\": \"Average\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\r\n \"equals\": \"GreaterThan\"\r\n },\r\n {\r\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\r\n \"equals\": \"[[if(contains(field('tags'), '_amba-MemoryPercentage-threshold-Override_'), field('tags._amba-MemoryPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n ]\r\n },\r\n \"deployment\": {\r\n \"properties\": {\r\n \"mode\": \"incremental\",\r\n \"template\": {\r\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\r\n \"contentVersion\": \"1.0.0.0\",\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceName\",\r\n \"description\": \"Name of the resource\"\r\n }\r\n },\r\n \"resourceId\": {\r\n \"type\": \"String\",\r\n \"metadata\": {\r\n \"displayName\": \"resourceId\",\r\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\r\n }\r\n },\r\n \"severity\": {\r\n \"type\": \"String\"\r\n },\r\n \"windowSize\": {\r\n \"type\": \"String\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"type\": \"String\"\r\n },\r\n \"autoMitigate\": {\r\n \"type\": \"String\"\r\n },\r\n \"enabled\": {\r\n \"type\": \"String\"\r\n },\r\n \"threshold\": {\r\n \"type\": \"String\"\r\n }\r\n },\r\n \"variables\": {},\r\n \"resources\": [\r\n {\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"apiVersion\": \"2018-03-01\",\r\n \"name\": \"[[concat(parameters('resourceName'), '-MemoryPercentage')]\",\r\n \"location\": \"global\",\r\n \"tags\": {\r\n \"_deployed_by_amba\": true\r\n },\r\n \"properties\": {\r\n \"description\": \"Metric Alert for App Service Plan Memory Percentage\",\r\n \"severity\": \"[[parameters('severity')]\",\r\n \"enabled\": \"[[parameters('enabled')]\",\r\n \"scopes\": [\r\n \"[[parameters('resourceId')]\"\r\n ],\r\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\r\n \"windowSize\": \"[[parameters('windowSize')]\",\r\n \"criteria\": {\r\n \"allOf\": [\r\n {\r\n \"name\": \"MemoryPercentage\",\r\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\r\n \"metricName\": \"MemoryPercentage\",\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\": \"[[parameters('threshold')]\",\r\n \"timeAggregation\": \"Average\",\r\n \"criterionType\": \"StaticThresholdCriterion\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n },\r\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\r\n \"parameters\": {\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[parameters('threshold')]\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"parameters\": {\r\n \"resourceName\": {\r\n \"value\": \"[[field('name')]\"\r\n },\r\n \"resourceId\": {\r\n \"value\": \"[[field('id')]\"\r\n },\r\n \"severity\": {\r\n \"value\": \"[[parameters('severity')]\"\r\n },\r\n \"windowSize\": {\r\n \"value\": \"[[parameters('windowSize')]\"\r\n },\r\n \"evaluationFrequency\": {\r\n \"value\": \"[[parameters('evaluationFrequency')]\"\r\n },\r\n \"autoMitigate\": {\r\n \"value\": \"[[parameters('autoMitigate')]\"\r\n },\r\n \"enabled\": {\r\n \"value\": \"[[parameters('enabled')]\"\r\n },\r\n \"threshold\": {\r\n \"value\": \"[[if(contains(field('tags'), '_amba-MemoryPercentage-threshold-Override_'), field('tags._amba-MemoryPercentage-threshold-Override_'), parameters('threshold'))]\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", + "$fxv#3": "{\n \"type\": \"Microsoft.Authorization/policyDefinitions\",\n \"apiVersion\": \"2021-06-01\",\n \"name\": \"Deploy_WSF_MemoryPercentage_Alert\",\n \"properties\": {\n \"policyType\": \"Custom\",\n \"mode\": \"All\",\n \"displayName\": \"Deploy App Service Plan Memory Percentage Alert\",\n \"description\": \"Policy to audit/deploy App Service Plan Memory Percentage Alert\",\n \"metadata\": {\n \"version\": \"1.2.1\",\n \"category\": \"Web Services\",\n \"source\": \"https://github.com/Azure/azure-monitor-baseline-alerts/\",\n \"_deployed_by_amba\": \"True\"\n },\n \"parameters\": {\n \"severity\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Severity\",\n \"description\": \"Severity of the Alert\"\n },\n \"allowedValues\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n \"defaultValue\": \"2\"\n },\n \"windowSize\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Window Size\",\n \"description\": \"Window size for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\",\n \"PT6H\",\n \"PT12H\",\n \"P1D\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Evaluation Frequency\",\n \"description\": \"Evaluation frequency for the alert\"\n },\n \"allowedValues\": [\n \"PT1M\",\n \"PT5M\",\n \"PT15M\",\n \"PT30M\",\n \"PT1H\"\n ],\n \"defaultValue\": \"PT5M\"\n },\n \"autoMitigate\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Auto Mitigate\",\n \"description\": \"Auto Mitigate for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"enabled\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Alert State\",\n \"description\": \"Alert state for the alert\"\n },\n \"allowedValues\": [\n \"true\",\n \"false\"\n ],\n \"defaultValue\": \"true\"\n },\n \"threshold\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Threshold\",\n \"description\": \"Threshold for the alert\"\n },\n \"defaultValue\": \"85\"\n },\n \"effect\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"Effect\",\n \"description\": \"Effect of the policy\"\n },\n \"allowedValues\": [\n \"deployIfNotExists\",\n \"disabled\"\n ],\n \"defaultValue\": \"deployIfNotExists\"\n },\n \"MonitorDisableTagName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag name\",\n \"description\": \"Tag name used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": \"MonitorDisable\"\n },\n \"MonitorDisableTagValues\": {\n \"type\": \"Array\",\n \"metadata\": {\n \"displayName\": \"ALZ Monitoring disabled tag values(s)\",\n \"description\": \"Tag value(s) used to disable monitoring at the resource level. Set to true if monitoring should be disabled.\"\n },\n \"defaultValue\": [\n \"true\",\n \"Test\",\n \"Dev\",\n \"Sandbox\"\n ]\n }\n },\n \"policyRule\": {\n \"if\": {\n \"allOf\": [\n {\n \"field\": \"type\",\n \"equals\": \"Microsoft.Web/serverfarms\"\n },\n {\n \"field\": \"[[concat('tags[', parameters('MonitorDisableTagName'), ']')]\",\n \"notIn\": \"[[parameters('MonitorDisableTagValues')]\"\n }\n ]\n },\n \"then\": {\n \"effect\": \"[[parameters('effect')]\",\n \"details\": {\n \"roleDefinitionIds\": [\n \"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\n ],\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"existenceCondition\": {\n \"allOf\": [\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace\",\n \"equals\": \"Microsoft.Web/serverfarms\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName\",\n \"equals\": \"MemoryPercentage\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/scopes[*]\",\n \"equals\": \"[[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/enabled\",\n \"equals\": \"[[parameters('enabled')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/evaluationFrequency\",\n \"equals\": \"[[parameters('evaluationFrequency')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/windowSize\",\n \"equals\": \"[[parameters('windowSize')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricalerts/severity\",\n \"equals\": \"[[parameters('severity')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/autoMitigate\",\n \"equals\": \"[[parameters('autoMitigate')]\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation\",\n \"equals\": \"Average\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator\",\n \"equals\": \"GreaterThan\"\n },\n {\n \"field\": \"Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold\",\n \"equals\": \"[[if(contains(field('tags'), '_amba-MemoryPercentage-threshold-Override_'), field('tags._amba-MemoryPercentage-threshold-Override_'), parameters('threshold'))]\"\n }\n ]\n },\n \"deployment\": {\n \"properties\": {\n \"mode\": \"incremental\",\n \"template\": {\n \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {\n \"resourceName\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceName\",\n \"description\": \"Name of the resource\"\n }\n },\n \"resourceId\": {\n \"type\": \"String\",\n \"metadata\": {\n \"displayName\": \"resourceId\",\n \"description\": \"Resource ID of the resource emitting the metric that will be used for the comparison\"\n }\n },\n \"severity\": {\n \"type\": \"String\"\n },\n \"windowSize\": {\n \"type\": \"String\"\n },\n \"evaluationFrequency\": {\n \"type\": \"String\"\n },\n \"autoMitigate\": {\n \"type\": \"String\"\n },\n \"enabled\": {\n \"type\": \"String\"\n },\n \"threshold\": {\n \"type\": \"String\"\n }\n },\n \"variables\": {},\n \"resources\": [\n {\n \"type\": \"Microsoft.Insights/metricAlerts\",\n \"apiVersion\": \"2018-03-01\",\n \"name\": \"[[concat(parameters('resourceName'), '-MemoryPercentage')]\",\n \"location\": \"global\",\n \"tags\": {\n \"_deployed_by_amba\": true\n },\n \"properties\": {\n \"description\": \"Metric Alert for App Service Plan Memory Percentage\",\n \"severity\": \"[[parameters('severity')]\",\n \"enabled\": \"[[parameters('enabled')]\",\n \"scopes\": [\n \"[[parameters('resourceId')]\"\n ],\n \"evaluationFrequency\": \"[[parameters('evaluationFrequency')]\",\n \"windowSize\": \"[[parameters('windowSize')]\",\n \"criteria\": {\n \"allOf\": [\n {\n \"name\": \"MemoryPercentage\",\n \"metricNamespace\": \"Microsoft.Web/serverfarms\",\n \"metricName\": \"MemoryPercentage\",\n \"operator\": \"GreaterThan\",\n \"threshold\": \"[[parameters('threshold')]\",\n \"timeAggregation\": \"Average\",\n \"criterionType\": \"StaticThresholdCriterion\"\n }\n ],\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\n },\n \"autoMitigate\": \"[[parameters('autoMitigate')]\",\n \"parameters\": {\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[parameters('threshold')]\"\n }\n }\n }\n }\n ]\n },\n \"parameters\": {\n \"resourceName\": {\n \"value\": \"[[field('name')]\"\n },\n \"resourceId\": {\n \"value\": \"[[field('id')]\"\n },\n \"severity\": {\n \"value\": \"[[parameters('severity')]\"\n },\n \"windowSize\": {\n \"value\": \"[[parameters('windowSize')]\"\n },\n \"evaluationFrequency\": {\n \"value\": \"[[parameters('evaluationFrequency')]\"\n },\n \"autoMitigate\": {\n \"value\": \"[[parameters('autoMitigate')]\"\n },\n \"enabled\": {\n \"value\": \"[[parameters('enabled')]\"\n },\n \"threshold\": {\n \"value\": \"[[if(contains(field('tags'), '_amba-MemoryPercentage-threshold-Override_'), field('tags._amba-MemoryPercentage-threshold-Override_'), parameters('threshold'))]\"\n }\n }\n }\n }\n }\n }\n }\n }\n}\n", "$fxv#4": { "type": "Microsoft.Authorization/policySetDefinitions", "apiVersion": "2021-06-01", diff --git a/services/Cdn/profiles/Deploy-CDNP-OriginHealthPercentage-Alert.json b/services/Cdn/profiles/Deploy-CDNP-OriginHealthPercentage-Alert.json index ad2621cd1..e4c2bcd4b 100644 --- a/services/Cdn/profiles/Deploy-CDNP-OriginHealthPercentage-Alert.json +++ b/services/Cdn/profiles/Deploy-CDNP-OriginHealthPercentage-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy FrontDoor CDN Profile Origin Health Percentage Alert", "description": "Policy to audit/deploy FrontDoor Origin Health Percentage Alert", "metadata": { - "version": "1.2.1", - "Category": "Networking", + "version": "1.2.2", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-ApplicationGatewayTotalTime-Alert.json b/services/Network/applicationGateways/Deploy-AGW-ApplicationGatewayTotalTime-Alert.json index fe4179fb9..31e9ee5f2 100644 --- a/services/Network/applicationGateways/Deploy-AGW-ApplicationGatewayTotalTime-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-ApplicationGatewayTotalTime-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW ApplicationGatewayTotalTime Alert", "description": "Policy to audit/deploy Azure Application Gateway ApplicationGatewayTotalTime Alert", "metadata": { - "version": "1.4.0", - "Category": "Networking", + "version": "1.4.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-BackendLastByteResponseTime-Alert.json b/services/Network/applicationGateways/Deploy-AGW-BackendLastByteResponseTime-Alert.json index c33b2760e..7d2244030 100644 --- a/services/Network/applicationGateways/Deploy-AGW-BackendLastByteResponseTime-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-BackendLastByteResponseTime-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW BackendLastByteResponseTime Alert", "description": "Policy to audit/deploy Azure Application Gateway BackendLastByteResponseTime Alert", "metadata": { - "version": "1.4.0", - "Category": "Networking", + "version": "1.4.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-CPUUtil-Alert.json b/services/Network/applicationGateways/Deploy-AGW-CPUUtil-Alert.json index ec90c50fd..1f30f1fa6 100644 --- a/services/Network/applicationGateways/Deploy-AGW-CPUUtil-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-CPUUtil-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW CPU Utilization Alert", "description": "Policy to audit/deploy Azure Application Gateway CPU Utilization Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-CapacityUnits-Alert.json b/services/Network/applicationGateways/Deploy-AGW-CapacityUnits-Alert.json index 88be67c46..1102ade2d 100644 --- a/services/Network/applicationGateways/Deploy-AGW-CapacityUnits-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-CapacityUnits-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW Capacity Units Alert", "description": "Policy to audit/deploy Azure Application Gateway CapacityUnits Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-ComputeUnits-Alert.json b/services/Network/applicationGateways/Deploy-AGW-ComputeUnits-Alert.json index a03d4fb7d..66f7098c5 100644 --- a/services/Network/applicationGateways/Deploy-AGW-ComputeUnits-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-ComputeUnits-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW Compute Units Alert", "description": "Policy to audit/deploy Azure Application Gateway ComputeUnits Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-FailedRequests-Alert.json b/services/Network/applicationGateways/Deploy-AGW-FailedRequests-Alert.json index 12b7310be..c82cb97e4 100644 --- a/services/Network/applicationGateways/Deploy-AGW-FailedRequests-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-FailedRequests-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW FailedRequests Alert", "description": "Policy to audit/deploy Azure Application Gateway FailedRequests Alert", "metadata": { - "version": "1.3.0", - "Category": "Networking", + "version": "1.3.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-ResponseStatus-Alert.json b/services/Network/applicationGateways/Deploy-AGW-ResponseStatus-Alert.json index 1cb535efc..c5a56fb69 100644 --- a/services/Network/applicationGateways/Deploy-AGW-ResponseStatus-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-ResponseStatus-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW ResponseStatus Alert", "description": "Policy to audit/deploy Azure Application Gateway ResponseStatus Alert", "metadata": { - "version": "1.3.0", - "Category": "Networking", + "version": "1.3.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/applicationGateways/Deploy-AGW-UnhealthyHostCount-Alert.json b/services/Network/applicationGateways/Deploy-AGW-UnhealthyHostCount-Alert.json index 623f57a0b..c573d9906 100644 --- a/services/Network/applicationGateways/Deploy-AGW-UnhealthyHostCount-Alert.json +++ b/services/Network/applicationGateways/Deploy-AGW-UnhealthyHostCount-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy AGW Unhealthy Host Count Alert", "description": "Policy to audit/deploy Azure Application Gateway Unhealthy Host Count Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/expressRoutePorts/Deploy-ERP-BitsInPerSecond-Alert.json b/services/Network/expressRoutePorts/Deploy-ERP-BitsInPerSecond-Alert.json index 10483f1a1..917e18915 100644 --- a/services/Network/expressRoutePorts/Deploy-ERP-BitsInPerSecond-Alert.json +++ b/services/Network/expressRoutePorts/Deploy-ERP-BitsInPerSecond-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ER Direct ExpressRoute Bits In Alert", "description": "Policy to audit/deploy ER Direct Connection BitsInPerSecond Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/expressRoutePorts/Deploy-ERP-BitsOutPerSecond-Alert.json b/services/Network/expressRoutePorts/Deploy-ERP-BitsOutPerSecond-Alert.json index a4290c982..82054297a 100644 --- a/services/Network/expressRoutePorts/Deploy-ERP-BitsOutPerSecond-Alert.json +++ b/services/Network/expressRoutePorts/Deploy-ERP-BitsOutPerSecond-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ER Direct ExpressRoute Bits Out Alert", "description": "Policy to audit/deploy ER Direct Connection BitsOutPerSecond Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/expressRoutePorts/Deploy-ERP-LineProtocol-Alert.json b/services/Network/expressRoutePorts/Deploy-ERP-LineProtocol-Alert.json index 93668535e..d89c9ef27 100644 --- a/services/Network/expressRoutePorts/Deploy-ERP-LineProtocol-Alert.json +++ b/services/Network/expressRoutePorts/Deploy-ERP-LineProtocol-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ER Direct ExpressRoute LineProtocol Alert", "description": "Policy to audit/deploy ER Direct LineProtocol Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/expressRoutePorts/Deploy-ERP-RxLightLevelLow-Alert.json b/services/Network/expressRoutePorts/Deploy-ERP-RxLightLevelLow-Alert.json index e5f9520d1..408be2940 100644 --- a/services/Network/expressRoutePorts/Deploy-ERP-RxLightLevelLow-Alert.json +++ b/services/Network/expressRoutePorts/Deploy-ERP-RxLightLevelLow-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ER Direct ExpressRoute RxLightLevel Low Alert", "description": "Policy to audit/deploy ER Direct RxLightLevel Low Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelHigh-Alert.json b/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelHigh-Alert.json index d5d85e726..2e90c63d5 100644 --- a/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelHigh-Alert.json +++ b/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelHigh-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ER Direct ExpressRoute TxLightLevel High Alert", "description": "Policy to audit/deploy ER Direct TxLightLevel High Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelLow-Alert.json b/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelLow-Alert.json index d2ea2b19f..04fcedb38 100644 --- a/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelLow-Alert.json +++ b/services/Network/expressRoutePorts/Deploy-ERP-TxLightLevelLow-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ER Direct ExpressRoute TxLightLevel Low Alert", "description": "Policy to audit/deploy ER Direct TxLightLevel Low Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/loadBalancers/Deploy-LB-DatapathAvailability-Alert.json b/services/Network/loadBalancers/Deploy-LB-DatapathAvailability-Alert.json index 69625154e..3c59b705e 100644 --- a/services/Network/loadBalancers/Deploy-LB-DatapathAvailability-Alert.json +++ b/services/Network/loadBalancers/Deploy-LB-DatapathAvailability-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ALB Data Path Availability Alert", "description": "Policy to audit/deploy Azure Load Balancer Data Path Availability Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/loadBalancers/Deploy-LB-GlobalBackendAvailability-Alert.json b/services/Network/loadBalancers/Deploy-LB-GlobalBackendAvailability-Alert.json index 94d57055a..3f0689f48 100644 --- a/services/Network/loadBalancers/Deploy-LB-GlobalBackendAvailability-Alert.json +++ b/services/Network/loadBalancers/Deploy-LB-GlobalBackendAvailability-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ALB Global Backend Availability Alert", "description": "Policy to audit/deploy Azure Load Balancer Global Backend Availability Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/loadBalancers/Deploy-LB-HealthProbeStatus-Alert.json b/services/Network/loadBalancers/Deploy-LB-HealthProbeStatus-Alert.json index 7b3f67c37..24981b9d0 100644 --- a/services/Network/loadBalancers/Deploy-LB-HealthProbeStatus-Alert.json +++ b/services/Network/loadBalancers/Deploy-LB-HealthProbeStatus-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ALB Health Probe Status Alert", "description": "Policy to audit/deploy Azure Load Balancer Health Probe Status Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/loadBalancers/Deploy-LB-UsedSNATPorts-Alert.json b/services/Network/loadBalancers/Deploy-LB-UsedSNATPorts-Alert.json index afec29cd1..699730c3c 100644 --- a/services/Network/loadBalancers/Deploy-LB-UsedSNATPorts-Alert.json +++ b/services/Network/loadBalancers/Deploy-LB-UsedSNATPorts-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy ALB Used SNAT Ports Alert", "description": "Policy to audit/deploy Azure Load Balancer Used SNAT Ports Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Network/trafficmanagerprofiles/Deploy-TM-EndpointHealth-Alert.json b/services/Network/trafficmanagerprofiles/Deploy-TM-EndpointHealth-Alert.json index 101d0651a..6ded3544e 100644 --- a/services/Network/trafficmanagerprofiles/Deploy-TM-EndpointHealth-Alert.json +++ b/services/Network/trafficmanagerprofiles/Deploy-TM-EndpointHealth-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy Traffic Manager Endpoint Health Alert", "description": "Policy to audit/deploy FTraffic Manager Endpoint Health Health Alert", "metadata": { - "version": "1.2.0", - "Category": "Networking", + "version": "1.2.1", + "category": "Networking", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Web/serverFarms/Deploy-WSF-CPUPercentage-Alert.json b/services/Web/serverFarms/Deploy-WSF-CPUPercentage-Alert.json index eb0f19fc9..44b8080e2 100644 --- a/services/Web/serverFarms/Deploy-WSF-CPUPercentage-Alert.json +++ b/services/Web/serverFarms/Deploy-WSF-CPUPercentage-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy App Service Plan CPU Percentage Alert", "description": "Policy to audit/deploy App Service Plan CPU Percentage Alert", "metadata": { - "version": "1.2.0", - "Category": "Web Services", + "version": "1.2.1", + "category": "Web Services", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, diff --git a/services/Web/serverFarms/Deploy-WSF-MemoryPercentage-Alert.json b/services/Web/serverFarms/Deploy-WSF-MemoryPercentage-Alert.json index 33e406a47..fe181350a 100644 --- a/services/Web/serverFarms/Deploy-WSF-MemoryPercentage-Alert.json +++ b/services/Web/serverFarms/Deploy-WSF-MemoryPercentage-Alert.json @@ -8,8 +8,8 @@ "displayName": "Deploy App Service Plan Memory Percentage Alert", "description": "Policy to audit/deploy App Service Plan Memory Percentage Alert", "metadata": { - "version": "1.2.0", - "Category": "Web Services", + "version": "1.2.1", + "category": "Web Services", "source": "https://github.com/Azure/azure-monitor-baseline-alerts/", "_deployed_by_amba": "True" }, From c3995319ded1b5e23f29248e1ec5f9220185e19a Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Sun, 8 Dec 2024 18:22:02 +0100 Subject: [PATCH 05/21] - Switched to new remediation script with consistent name - Updated corresponding documentation --- .../patterns/alz/HowTo/Disabling-Policies.md | 2 +- .../alz/HowTo/deploy/Remediate-Policies.md | 36 +++++++++---------- .../Start-AMBARemediation.ps1 | 0 3 files changed, 19 insertions(+), 19 deletions(-) rename patterns/alz/scripts/{ => Old scripts}/Start-AMBARemediation.ps1 (100%) diff --git a/docs/content/patterns/alz/HowTo/Disabling-Policies.md b/docs/content/patterns/alz/HowTo/Disabling-Policies.md index 65b019a8d..2d5838d83 100644 --- a/docs/content/patterns/alz/HowTo/Disabling-Policies.md +++ b/docs/content/patterns/alz/HowTo/Disabling-Policies.md @@ -52,7 +52,7 @@ If "allOf" evaluates to true, the policy effect is satisfied, and deployment doe 1. Set AlertState to "false" for relevant policies via command line or parameter file. 2. Deploy the policies and assignments. -3. Identify non-compliant policies based on alerts to be disabled. Remediate these policies through the portal or use the script at [patterns/alz/scripts/Start-AMBARemediation](https://github.com/Azure/azure-monitor-baseline-alerts/blob/main/patterns/alz/scripts/Start-AMBARemediation.ps1). +3. Identify non-compliant policies based on alerts to be disabled. Remediate these policies through the portal or use the script at [patterns/alz/scripts/Start-AMBA-ALZ-Remediation](https://github.com/Azure/azure-monitor-baseline-alerts/blob/main/patterns/alz/scripts/Start-AMBA-ALZ-Remediation.ps1). Note: This approach disables alerts but does not delete them. Delete alerts manually if needed. Ensure successful remediation before engaging PolicyEffect to avoid deploying new alerts. diff --git a/docs/content/patterns/alz/HowTo/deploy/Remediate-Policies.md b/docs/content/patterns/alz/HowTo/deploy/Remediate-Policies.md index 756854d0c..8eac41b92 100644 --- a/docs/content/patterns/alz/HowTo/deploy/Remediate-Policies.md +++ b/docs/content/patterns/alz/HowTo/deploy/Remediate-Policies.md @@ -5,7 +5,7 @@ weight: 80 By default, the policies are set to deploy-if-not-exists. This configuration affects any new deployments. In a greenfield scenario, where new resources and subscriptions are deployed, the policies will automatically create the necessary alert rules, action groups, and alert processing rules. -In a brownfield scenario, the policies will report non-compliance for existing resources within their scope. To remediate these non-compliant resources, you need to initiate remediation. This can be done through the Azure portal on a policy-by-policy basis or by running the *Start-AMBARemediation.ps1* script located in the *.\patterns\alz\scripts* folder. This script will remediate all AMBA-ALZ policies in scope as defined by the management group prefix. +In a brownfield scenario, the policies will report non-compliance for existing resources within their scope. To remediate these non-compliant resources, you need to initiate remediation. This can be done through the Azure portal on a policy-by-policy basis or by running the *Start-AMBA-ALZ-Remediation.ps1* script located in the *.\patterns\alz\scripts* folder. This script will remediate all AMBA-ALZ policies in scope as defined by the management group prefix. {{< hint type=Important >}} This script requires PowerShell 7.0 or higher, and the following PowerShell modules: @@ -33,7 +33,7 @@ $managementManagementGroup = "The management group id for Management" ```powershell # Run the following commands to initiate remediation -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $managementManagementGroup -policyName Alerting-Management +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $managementManagementGroup -policyName Alerting-Management ``` The script will output the results of the REST API calls, typically returning a status code 201. If the script encounters an error, review the error message and verify that the management group name and policy name are correct. Upon successful execution of the script, you should observe multiple remediation tasks initiated within the **alz-platform-management** management group. @@ -52,26 +52,26 @@ $LZManagementGroup="The management group ID for Landing Zones" ```powershell # Run the following commands to initiate remediation -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName Notification-Assets -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName Alerting-ServiceHealth -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $platformManagementGroup -policyName Alerting-HybridVM -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $platformManagementGroup -policyName Alerting-VM -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $connectivityManagementGroup -policyName Alerting-Connectivity -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $identityManagementGroup -policyName Alerting-Identity -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $managementManagementGroup -policyName Alerting-Management -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-KeyManagement -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-LoadBalancing -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-NetworkChanges -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-RecoveryServices -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-Storage -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-HybridVM -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-VM -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-Web +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName Notification-Assets +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName Alerting-ServiceHealth +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $platformManagementGroup -policyName Alerting-HybridVM +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $platformManagementGroup -policyName Alerting-VM +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $connectivityManagementGroup -policyName Alerting-Connectivity +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $identityManagementGroup -policyName Alerting-Identity +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $managementManagementGroup -policyName Alerting-Management +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-KeyManagement +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-LoadBalancing +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-NetworkChanges +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-RecoveryServices +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-Storage +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-HybridVM +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-VM +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $LZManagementGroup -policyName Alerting-Web ``` To remediate a single policy definition instead of the entire policy initiative, use the remediation script with the specific policy reference ID available on the [Policy Initiatives](../../../Getting-started/Policy-Initiatives) page. For example, to remediate the **Deploy AMBA Notification Assets** policy, execute the following command: ```powershell # Run the following command to initiate remediation of a single policy definition -.\patterns\alz\scripts\Start-AMBARemediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName ALZ_AlertProcessing_Rule +.\patterns\alz\scripts\Start-AMBA-ALZ-Remediation.ps1 -managementGroupName $pseudoRootManagementGroup -policyName ALZ_AlertProcessing_Rule ``` diff --git a/patterns/alz/scripts/Start-AMBARemediation.ps1 b/patterns/alz/scripts/Old scripts/Start-AMBARemediation.ps1 similarity index 100% rename from patterns/alz/scripts/Start-AMBARemediation.ps1 rename to patterns/alz/scripts/Old scripts/Start-AMBARemediation.ps1 From 8006169b9c96091267c82e6dc4df6f7d185707fd Mon Sep 17 00:00:00 2001 From: Arjen Huitema Date: Mon, 9 Dec 2024 16:23:27 +0100 Subject: [PATCH 06/21] Adds terraform-sync parameters --- .../alz/eslzArm.terraform-sync.param.json | 2764 +++++++++++++++++ 1 file changed, 2764 insertions(+) create mode 100644 patterns/alz/eslzArm.terraform-sync.param.json diff --git a/patterns/alz/eslzArm.terraform-sync.param.json b/patterns/alz/eslzArm.terraform-sync.param.json new file mode 100644 index 000000000..a639b6af1 --- /dev/null +++ b/patterns/alz/eslzArm.terraform-sync.param.json @@ -0,0 +1,2764 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "enterpriseScaleCompanyPrefix": { + "value": "defaults" + }, + "platformManagementGroup": { + "value": "defaults-platform" + }, + "IdentityManagementGroup": { + "value": "defaults-identity" + }, + "managementManagementGroup": { + "value": "defaults-management" + }, + "connectivityManagementGroup": { + "value": "defaults-connectivity" + }, + "LandingZoneManagementGroup": { + "value": "defaults-landingzones" + }, + "enableAMBAConnectivity": { + "value": "Yes" + }, + "enableAMBAIdentity": { + "value": "Yes" + }, + "enableAMBAManagement": { + "value": "Yes" + }, + "enableAMBAServiceHealth": { + "value": "Yes" + }, + "enableAMBANotificationAssets": { + "value": "Yes" + }, + "enableAMBAHybridVM": { + "value": "Yes" + }, + "enableAMBAKeyManagement": { + "value": "Yes" + }, + "enableAMBALoadBalancing": { + "value": "Yes" + }, + "enableAMBANetworkChanges": { + "value": "Yes" + }, + "enableAMBARecoveryServices": { + "value": "Yes" + }, + "enableAMBAStorage": { + "value": "Yes" + }, + "enableAMBAVM": { + "value": "Yes" + }, + "enableAMBAWeb": { + "value": "Yes" + }, + "telemetryOptOut": { + "value": "No" + }, + "bringYourOwnUserAssignedManagedIdentity": { + "value": "No" + }, + "bringYourOwnUserAssignedManagedIdentityResourceId": { + "value": "" + }, + "userAssignedManagedIdentityName": { + "value": "id-amba-prod-001" + }, + "managementSubscriptionId": { + "value": "00000000-0000-0000-0000-000000000000" + }, + "ALZMonitorResourceGroupName": { + "value": "rg-amba-monitoring-001" + }, + "ALZMonitorResourceGroupLocation": { + "value": "eastus" + }, + "ALZMonitorResourceGroupTags": { + "value": { + "Project": "amba-monitoring" + } + }, + "ALZMonitorDisableTagName": { + "value": "MonitorDisable" + }, + "ALZMonitorDisableTagValues": { + "value": [ + "true", + "Test", + "Dev", + "Sandbox" + ] + }, + "ALZMonitorActionGroupEmail": { + "value": ["test.user@replace.me"] + }, + "ALZLogicappResourceId": { + "value": "" + }, + "ALZLogicappCallbackUrl": { + "value": "" + }, + "ALZArmRoleId": { + "value": [] + }, + "ALZEventHubResourceId": { + "value": [] + }, + "ALZWebhookServiceUri": { + "value": [] + }, + "ALZFunctionResourceId": { + "value": "" + }, + "ALZFunctionTriggerUrl": { + "value": "" + }, + "BYOActionGroup": { + "value": [] + }, + "BYOAlertProcessingRule": { + "value": "" + }, + "policyAssignmentParametersServiceHealth": { + "value": { + "ResHlthUnhealthyAlertState": { + "value": "true" + }, + "ResHlthUnhealthyPolicyEffect": { + "value": "deployIfNotExists" + }, + "SvcHlthAdvisoryAlertState": { + "value": "true" + }, + "serviceHealthAdvisoryPolicyEffect": { + "value": "deployIfNotExists" + }, + "SvcHlthIncidentAlertState": { + "value": "true" + }, + "serviceHealthIncidentPolicyEffect": { + "value": "deployIfNotExists" + }, + "SvcHlthMaintenanceAlertState": { + "value": "true" + }, + "serviceHealthMaintenancePolicyEffect": { + "value": "deployIfNotExists" + }, + "svcHlthSecAdvisoryAlertState": { + "value": "true" + }, + "serviceHealthSecurityPolicyEffect": { + "value": "deployIfNotExists" + } + } + }, + "policyAssignmentParametersConnectivity": { + "value": { + "ERCIRQoSDropBitsinPerSecAlertSeverity": { + "value": "2" + }, + "ERCIRQoSDropBitsinPerSecWindowSize": { + "value": "PT5M" + }, + "ERCIRQoSDropBitsinPerSecEvaluationFrequency": { + "value": "PT5M" + }, + "ERCIRQoSDropBitsinPerSecPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERCIRQoSDropBitsinPerSecAlertState": { + "value": "true" + }, + "ERCIRQoSDropBitsoutPerSecAlertSeverity": { + "value": "2" + }, + "ERCIRQoSDropBitsoutPerSecWindowSize": { + "value": "PT5M" + }, + "ERCIRQoSDropBitsoutPerSecEvaluationFrequency": { + "value": "PT5M" + }, + "ERCIRQoSDropBitsoutPerSecPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERCIRQoSDropBitsoutPerSecAlertState": { + "value": "true" + }, + "VPNGwBGPPeerStatusAlertSeverity": { + "value": "3" + }, + "VPNGwBGPPeerStatusWindowSize": { + "value": "PT5M" + }, + "VPNGwBGPPeerStatusEvaluationFrequency": { + "value": "PT5M" + }, + "VPNGwBGPPeerStatusPolicyEffect": { + "value": "deployIfNotExists" + }, + "VPNGwBGPPeerStatusAlertState": { + "value": "true" + }, + "VPNGwBGPPeerStatusThreshold": { + "value": "1" + }, + "VnetGwERCpuUtilAlertSeverity": { + "value": "3" + }, + "VnetGwERCpuUtilWindowSize": { + "value": "PT5M" + }, + "VnetGwERCpuUtilEvaluationFrequency": { + "value": "PT1M" + }, + "VnetGwERCpuUtilPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwERCpuUtilAlertState": { + "value": "true" + }, + "VnetGwERCpuUtilThreshold": { + "value": "80" + }, + "VnetGwTunnelBWAlertSeverity": { + "value": "0" + }, + "VnetGwTunnelBWWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelBWEvaluationFrequency": { + "value": "PT1M" + }, + "VnetGwTunnelBWPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwTunnelBWAlertState": { + "value": "true" + }, + "VnetGwTunnelBWThreshold": { + "value": "1" + }, + "VnetGwTunnelEgressAlertSeverity": { + "value": "0" + }, + "VnetGwTunnelEgressWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelEgressEvaluationFrequency": { + "value": "PT5M" + }, + "VnetGwTunnelEgressPolicyEffect": { + "value": "disabled" + }, + "VnetGwTunnelEgressAlertState": { + "value": "true" + }, + "VnetGwTunnelEgressThreshold": { + "value": "1" + }, + "VnetGwTunnelIngressAlertSeverity": { + "value": "0" + }, + "VnetGwTunnelIngressWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelIngressEvaluationFrequency": { + "value": "PT5M" + }, + "VnetGwTunnelIngressPolicyEffect": { + "value": "disabled" + }, + "VnetGwTunnelIngressAlertState": { + "value": "true" + }, + "VnetGwTunnelIngressThreshold": { + "value": "1" + }, + "VPNGWBandWidthUtilAlertSeverity": { + "value": "0" + }, + "VPNGWBandWidthUtilWindowSize": { + "value": "PT5M" + }, + "VPNGWBandWidthUtilEvaluationFrequency": { + "value": "PT5M" + }, + "VPNGWBandWidthUtilPolicyEffect": { + "value": "deployIfNotExists" + }, + "VPNGWBandWidthUtilAlertState": { + "value": "true" + }, + "VPNGWBandWidthUtilThreshold": { + "value": "1" + }, + "VPNGWEgressAlertSeverity": { + "value": "0" + }, + "VPNGWEgressWindowSize": { + "value": "PT5M" + }, + "VPNGWEgressEvaluationFrequency": { + "value": "PT5M" + }, + "VPNGWEgressPolicyEffect": { + "value": "disabled" + }, + "VPNGWEgressAlertState": { + "value": "true" + }, + "VPNGWEgressThreshold": { + "value": "1" + }, + "VPNGWTunnelEgressPacketDropCountAlertSeverity": { + "value": "3" + }, + "VPNGWTunnelEgressPacketDropCountWindowSize": { + "value": "PT5M" + }, + "VPNGWTunnelEgressPacketDropCountFrequency": { + "value": "PT5M" + }, + "VPNGWTunnelEgressPacketDropCountPolicyEffect": { + "value": "deployIfNotExists" + }, + "VPNGWTunnelEgressPacketDropCountAlertState": { + "value": "true" + }, + "VPNGWTunnelEgressPacketDropMismatchAlertSeverity": { + "value": "3" + }, + "VPNGWTunnelEgressPacketDropMismatchWindowSize": { + "value": "PT5M" + }, + "VPNGWTunnelEgressPacketDropMismatchFrequency": { + "value": "PT5M" + }, + "VPNGWTunnelEgressPacketDropMismatchPolicyEffect": { + "value": "deployIfNotExists" + }, + "VPNGWTunnelEgressPacketDropMismatchAlertState": { + "value": "true" + }, + "VPNGWIngressAlertSeverity": { + "value": "0" + }, + "VPNGWIngressWindowSize": { + "value": "PT5M" + }, + "VPNGWIngressEvaluationFrequency": { + "value": "PT5M" + }, + "VPNGWIngressPolicyEffect": { + "value": "disabled" + }, + "VPNGWIngressAlertState": { + "value": "true" + }, + "VPNGWIngressThreshold": { + "value": "1" + }, + "VPNGWIngressAutoMitigate": { + "value": "true" + }, + "VPNGWTunnelIngressPacketDropCountAlertSeverity": { + "value": "3" + }, + "VPNGWTunnelIngressPacketDropCountWindowSize": { + "value": "PT5M" + }, + "VPNGWTunnelIngressPacketDropCountFrequency": { + "value": "PT5M" + }, + "VPNGWTunnelIngressPacketDropCountPolicyEffect": { + "value": "deployIfNotExists" + }, + "VPNGWTunnelIngressPacketDropCountAlertState": { + "value": "true" + }, + "VPNGWTunnelIngressPacketDropMismatchAlertSeverity": { + "value": "3" + }, + "VPNGWTunnelIngressPacketDropMismatchWindowSize": { + "value": "PT5M" + }, + "VPNGWTunnelIngressPacketDropMismatchFrequency": { + "value": "PT5M" + }, + "VPNGWTunnelIngressPacketDropMismatchPolicyEffect": { + "value": "deployIfNotExists" + }, + "VPNGWTunnelIngressPacketDropMismatchAlertState": { + "value": "true" + }, + "PDNSZCapacityUtilAlertSeverity": { + "value": "2" + }, + "PDNSZCapacityUtilWindowSize": { + "value": "PT1H" + }, + "PDNSZCapacityUtilEvaluationFrequency": { + "value": "PT1H" + }, + "PDNSZCapacityUtilPolicyEffect": { + "value": "deployIfNotExists" + }, + "PDNSZCapacityUtilAlertState": { + "value": "true" + }, + "PDNSZCapacityUtilThreshold": { + "value": "80" + }, + "PDNSZQueryVolumeAlertSeverity": { + "value": "4" + }, + "PDNSZQueryVolumeWindowSize": { + "value": "PT1H" + }, + "PDNSZQueryVolumeEvaluationFrequency": { + "value": "PT1H" + }, + "PDNSZQueryVolumePolicyEffect": { + "value": "disabled" + }, + "PDNSZQueryVolumeAlertState": { + "value": "true" + }, + "PDNSZQueryVolumeThreshold": { + "value": "500" + }, + "PDNSZRecordSetCapacityAlertSeverity": { + "value": "2" + }, + "PDNSZRecordSetCapacityWindowSize": { + "value": "PT1H" + }, + "PDNSZRecordSetCapacityEvaluationFrequency": { + "value": "PT1H" + }, + "PDNSZRecordSetCapacityPolicyEffect": { + "value": "deployIfNotExists" + }, + "PDNSZRecordSetCapacityAlertState": { + "value": "true" + }, + "PDNSZRecordSetCapacityThreshold": { + "value": "80" + }, + "PDNSZRegistrationCapacityUtilAlertSeverity": { + "value": "2" + }, + "PDNSZRegistrationCapacityUtilWindowSize": { + "value": "PT1H" + }, + "PDNSZRegistrationCapacityUtilEvaluationFrequency": { + "value": "PT1H" + }, + "PDNSZRegistrationCapacityUtilPolicyEffect": { + "value": "deployIfNotExists" + }, + "PDNSZRegistrationCapacityUtilAlertState": { + "value": "true" + }, + "PDNSZRegistrationCapacityUtilThreshold": { + "value": "80" + }, + "PIPDDoSAttackAlertSeverity": { + "value": "1" + }, + "PIPDDoSAttackWindowSize": { + "value": "PT5M" + }, + "PIPDDoSAttackEvaluationFrequency": { + "value": "PT5M" + }, + "PIPDDoSAttackPolicyEffect": { + "value": "deployIfNotExists" + }, + "PIPDDoSAttackAlertState": { + "value": "true" + }, + "PIPDDoSAttackThreshold": { + "value": "0" + }, + "PIPPacketsInDDoSAlertSeverity": { + "value": "4" + }, + "PIPPacketsInDDoSWindowSize": { + "value": "PT5M" + }, + "PIPPacketsInDDoSEvaluationFrequency": { + "value": "PT5M" + }, + "PIPPacketsInDDoSPolicyEffect": { + "value": "disabled" + }, + "PIPPacketsInDDoSAlertState": { + "value": "true" + }, + "PIPPacketsInDDoSThreshold": { + "value": "40000" + }, + "PIPVIPAvailabilityAlertSeverity": { + "value": "1" + }, + "PIPVIPAvailabilityWindowSize": { + "value": "PT5M" + }, + "PIPVIPAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "PIPVIPAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "PIPVIPAvailabilityAlertState": { + "value": "true" + }, + "PIPVIPAvailabilityThreshold": { + "value": "1" + }, + "PIPBytesInDDoSAlertSeverity": { + "value": "4" + }, + "PIPBytesInDDoSWindowSize": { + "value": "PT5M" + }, + "PIPBytesInDDoSEvaluationFrequency": { + "value": "PT5M" + }, + "PIPBytesInDDoSPolicyEffect": { + "value": "disabled" + }, + "PIPBytesInDDoSAlertState": { + "value": "true" + }, + "PIPBytesInDDoSThreshold": { + "value": "8000000" + }, + "ERGwExpressRouteBitsInAlertSeverity": { + "value": "0" + }, + "ERGwExpressRouteBitsInWindowSize": { + "value": "PT5M" + }, + "ERGwExpressRouteBitsInEvaluationFrequency": { + "value": "PT5M" + }, + "ERGwExpressRouteBitsInPolicyEffect": { + "value": "disabled" + }, + "ERGwExpressRouteBitsInAlertState": { + "value": "true" + }, + "ERGwExpressRouteBitsInThreshold": { + "value": "1" + }, + "ERGwExpressRouteBitsOutAlertSeverity": { + "value": "0" + }, + "ERGwExpressRouteBitsOutWindowSize": { + "value": "PT5M" + }, + "ERGwExpressRouteBitsOutEvaluationFrequency": { + "value": "PT5M" + }, + "ERGwExpressRouteBitsOutPolicyEffect": { + "value": "disabled" + }, + "ERGwExpressRouteBitsOutAlertState": { + "value": "true" + }, + "ERGwExpressRouteBitsOutThreshold": { + "value": "1" + }, + "ERGwExpressRouteCpuUtilAlertSeverity": { + "value": "1" + }, + "ERGwExpressRouteCpuUtilWindowSize": { + "value": "PT5M" + }, + "ERGwExpressRouteCpuUtilEvaluationFrequency": { + "value": "PT1M" + }, + "ERGwExpressRouteCpuUtilPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERGwExpressRouteCpuUtilAlertState": { + "value": "true" + }, + "ERGwExpressRouteCpuUtilThreshold": { + "value": "80" + }, + "VNETDDOSAttackAlertSeverity": { + "value": "1" + }, + "VNETDDOSAttackWindowSize": { + "value": "PT5M" + }, + "VNETDDOSAttackEvaluationFrequency": { + "value": "PT1M" + }, + "VNETDDOSAttackPolicyEffect": { + "value": "deployIfNotExists" + }, + "VNETDDOSAttackAlertState": { + "value": "true" + }, + "VNETDDOSAttackThreshold": { + "value": "1" + }, + "VnetGwTunnelEgressPacketDropCountAlertSeverity": { + "value": "1" + }, + "VnetGwTunnelEgressPacketDropCountWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelEgressPacketDropCountEvaluationFrequency": { + "value": "PT5M" + }, + "VnetGwTunnelEgressPacketDropCountPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwTunnelEgressPacketDropCountAlertState": { + "value": "true" + }, + "VnetGwTunnelEgressPacketDropMismatchAlertSeverity": { + "value": "3" + }, + "VnetGwTunnelEgressPacketDropMismatchWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelEgressPacketDropMismatchEvaluationFrequency": { + "value": "PT5M" + }, + "VnetGwTunnelEgressPacketDropMismatchPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwTunnelEgressPacketDropMismatchAlertState": { + "value": "true" + }, + "VnetGwExpressRouteBitsPerSecondAlertSeverity": { + "value": "0" + }, + "VnetGwExpressRouteBitsPerSecondWindowSize": { + "value": "PT5M" + }, + "VnetGwExpressRouteBitsPerSecondEvaluationFrequency": { + "value": "PT1M" + }, + "VnetGwExpressRouteBitsPerSecondPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwExpressRouteBitsPerSecondAlertState": { + "value": "true" + }, + "VnetGwExpressRouteBitsPerSecondThreshold": { + "value": "1" + }, + "VnetGwTunnelIngressPacketDropMismatchAlertSeverity": { + "value": "3" + }, + "VnetGwTunnelIngressPacketDropMismatchWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelIngressPacketDropMismatchEvaluationFrequency": { + "value": "PT5M" + }, + "VnetGwTunnelIngressPacketDropMismatchPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwTunnelIngressPacketDropMismatchAlertState": { + "value": "true" + }, + "VnetGwTunnelIngressPacketDropCountAlertSeverity": { + "value": "3" + }, + "VnetGwTunnelIngressPacketDropCountWindowSize": { + "value": "PT5M" + }, + "VnetGwTunnelIngressPacketDropCountEvaluationFrequency": { + "value": "PT5M" + }, + "VnetGwTunnelIngressPacketDropCountPolicyEffect": { + "value": "deployIfNotExists" + }, + "VnetGwTunnelIngressPacketDropCountAlertState": { + "value": "true" + }, + "ERCIRBgpAvailabilityAlertSeverity": { + "value": "0" + }, + "ERCIRBgpAvailabilityWindowSize": { + "value": "PT5M" + }, + "ERCIRBgpAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "ERCIRBgpAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERCIRBgpAvailabilityAlertState": { + "value": "true" + }, + "ERCIRBgpAvailabilityThreshold": { + "value": "90" + }, + "ERCIRArpAvailabilityAlertSeverity": { + "value": "0" + }, + "ERCIRArpAvailabilityWindowSize": { + "value": "PT5M" + }, + "ERCIRArpAvailabilityFrequency": { + "value": "PT1M" + }, + "ERCIRArpAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERCIRArpAvailabilityAlertState": { + "value": "true" + }, + "ERCIRArpAvailabilityThreshold": { + "value": "90" + }, + "AFWSNATPortUtilizationAlertSeverity": { + "value": "1" + }, + "AFWSNATPortUtilizationWindowSize": { + "value": "PT5M" + }, + "AFWSNATPortUtilizationFrequency": { + "value": "PT1M" + }, + "AFWSNATPortUtilizationPolicyEffect": { + "value": "deployIfNotExists" + }, + "AFWSNATPortUtilizationAlertState": { + "value": "true" + }, + "AFWSNATPortUtilizationThreshold": { + "value": "80" + }, + "FirewallHealthAlertSeverity": { + "value": "0" + }, + "FirewallHealthWindowSize": { + "value": "PT5M" + }, + "FirewallHealthEvaluationFrequency": { + "value": "PT1M" + }, + "FirewallHealthPolicyEffect": { + "value": "deployIfNotExists" + }, + "FirewallHealthAlertState": { + "value": "true" + }, + "FirewallHealthThreshold": { + "value": "90" + }, + "activityFWDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityFWDeleteAlertState": { + "value": "true" + }, + "activityNSGDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityNSGDeleteAlertState": { + "value": "true" + }, + "activityUDRUpdatePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityUDRUpdateAlertState": { + "value": "true" + }, + "activityVPNGWDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityVPNGWDeleteAlertState": { + "value": "true" + }, + "LBDatapathAvailabilityAlertSeverity": { + "value": "0" + }, + "LBDatapathAvailabilityWindowSize": { + "value": "PT5M" + }, + "LBDatapathAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "LBDatapathAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBDatapathAvailabilityAlertState": { + "value": "true" + }, + "LBGlobalBackendAvailabilityAlertSeverity": { + "value": "0" + }, + "LBGlobalBackendAvailabilityWindowSize": { + "value": "PT5M" + }, + "LBGlobalBackendAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "LBGlobalBackendAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBGlobalBackendAvailabilityAlertState": { + "value": "true" + }, + "LBHealthProbeStatusAlertSeverity": { + "value": "2" + }, + "LBHealthProbeStatusWindowSize": { + "value": "PT5M" + }, + "LBHealthProbeStatusEvaluationFrequency": { + "value": "PT1M" + }, + "LBHealthProbeStatusPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBHealthProbeStatusAlertState": { + "value": "true" + }, + "LBUsedSNATPortsAlertSeverity": { + "value": "1" + }, + "LBUsedSNATPortsWindowSize": { + "value": "PT5M" + }, + "LBUsedSNATPortsEvaluationFrequency": { + "value": "PT1M" + }, + "LBUsedSNATPortsPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBUsedSNATPortsAlertState": { + "value": "true" + }, + "ERPBitsInPerSecondAlertSeverity": { + "value": "0" + }, + "ERPBitsInPerSecondWindowSize": { + "value": "PT5M" + }, + "ERPBitsInPerSecondEvaluationFrequency": { + "value": "PT1M" + }, + "ERPBitsInPerSecondPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPBitsInPerSecondAlertState": { + "value": "true" + }, + "ERPBitsOutPerSecondAlertSeverity": { + "value": "0" + }, + "ERPBitsOutPerSecondWindowSize": { + "value": "PT5M" + }, + "ERPBitsOutPerSecondEvaluationFrequency": { + "value": "PT1M" + }, + "ERPBitsOutPerSecondPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPBitsOutPerSecondAlertState": { + "value": "true" + }, + "ERPLineProtocolAlertSeverity": { + "value": "0" + }, + "ERPLineProtocolWindowSize": { + "value": "PT5M" + }, + "ERPLineProtocolEvaluationFrequency": { + "value": "PT1M" + }, + "ERPLineProtocolPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPLineProtocolAlertState": { + "value": "true" + }, + "ERPRxLightLevelHighAlertSeverity": { + "value": "1" + }, + "ERPRxLightLevelHighWindowSize": { + "value": "PT5M" + }, + "ERPRxLightLevelHighEvaluationFrequency": { + "value": "PT1M" + }, + "ERPRxLightLevelHighPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPRxLightLevelHighAlertState": { + "value": "true" + }, + "ERPRxLightLevelLowAlertSeverity": { + "value": "1" + }, + "ERPRxLightLevelLowWindowSize": { + "value": "PT5M" + }, + "ERPRxLightLevelLowEvaluationFrequency": { + "value": "PT1M" + }, + "ERPRxLightLevelLowPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPRxLightLevelLowAlertState": { + "value": "true" + }, + "ERPTxLightLevelHighAlertSeverity": { + "value": "1" + }, + "ERPTxLightLevelHighWindowSize": { + "value": "PT5M" + }, + "ERPTxLightLevelHighEvaluationFrequency": { + "value": "PT1M" + }, + "ERPTxLightLevelHighPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPTxLightLevelHighAlertState": { + "value": "true" + }, + "ERPTxLightLevelLowAlertSeverity": { + "value": "1" + }, + "ERPTxLightLevelLowWindowSize": { + "value": "PT5M" + }, + "ERPTxLightLevelLowEvaluationFrequency": { + "value": "PT1M" + }, + "ERPTxLightLevelLowPolicyEffect": { + "value": "deployIfNotExists" + }, + "ERPTxLightLevelLowAlertState": { + "value": "true" + } + } + }, + "policyAssignmentParametersIdentity": { + "value": { + "KVRequestAlertSeverity": { + "value": "2" + }, + "KVRequestWindowSize": { + "value": "PT5M" + }, + "KVRequestEvaluationFrequency": { + "value": "PT5M" + }, + "KVRequestPolicyEffect": { + "value": "disabled" + }, + "KVRequestAlertState": { + "value": "true" + }, + "KvAvailabilityAlertSeverity": { + "value": "1" + }, + "KvAvailabilityWindowSize": { + "value": "PT1M" + }, + "KvAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "KvAvailabilityPolicyEffect": { + "value": "disabled" + }, + "KvAvailabilityAlertState": { + "value": "true" + }, + "KVAvailabilityThreshold": { + "value": "20" + }, + "KvLatencyAvailabilityAlertSeverity": { + "value": "3" + }, + "KvLatencyAvailabilityWindowSize": { + "value": "PT5M" + }, + "KvLatencyAvailabilityEvaluationFrequency": { + "value": "PT5M" + }, + "KvLatencyAvailabilityPolicyEffect": { + "value": "disabled" + }, + "KvLatencyAvailabilityAlertState": { + "value": "true" + }, + "KvLatencyAvailabilityThreshold": { + "value": "1000" + }, + "KVCapacityAlertSeverity": { + "value": "1" + }, + "KVCapacityWindowSize": { + "value": "PT5M" + }, + "KVCapacityEvaluationFrequency": { + "value": "PT1M" + }, + "KVCapacityPolicyEffect": { + "value": "disabled" + }, + "KVCapacityAlertState": { + "value": "true" + }, + "KVCapacityThreshold": { + "value": "75" + }, + "activityKVDeleteAlertState": { + "value": "true" + }, + "activityKVDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "HSMsAvailabilityAlertSeverity": { + "value": "1" + }, + "HSMsAvailabilityWindowSize": { + "value": "PT1M" + }, + "HSMsAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "HSMsAvailabilityPolicyEffect": { + "value": "disabled" + }, + "HSMsAvailabilityAlertState": { + "value": "true" + }, + "HSMsAvailabilityThreshold": { + "value": "20" + }, + "HSMsLatencyAvailabilityAlertSeverity": { + "value": "3" + }, + "HSMsLatencyAvailabilityWindowSize": { + "value": "PT5M" + }, + "HSMsLatencyAvailabilityEvaluationFrequency": { + "value": "PT5M" + }, + "HSMsLatencyAvailabilityPolicyEffect": { + "value": "disabled" + }, + "HSMsLatencyAvailabilityAlertState": { + "value": "true" + }, + "HSMsLatencyAvailabilityThreshold": { + "value": "1000" + }, + "activityHSMsDeleteAlertState": { + "value": "true" + }, + "activityHSMsDeletePolicyEffect": { + "value": "deployIfNotExists" + } + } + }, + "policyAssignmentParametersHybridVM": { + "value": { + "HybridVMHeartBeatRGAlertSeverity": { + "value": "1" + }, + "HybridVMHeartBeatRGWindowSize": { + "value": "PT6H" + }, + "HybridVMHeartBeatRGEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMHeartBeatRGAutoMitigate": { + "value": "true" + }, + "HybridVMHeartBeatRGAutoResolve": { + "value": "true" + }, + "HybridVMHeartBeatRGAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMHeartBeatRGPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMHeartBeatRGAlertState": { + "value": "true" + }, + "HybridVMHeartBeatRGThreshold": { + "value": "10" + }, + "HybridVMHeartBeatRGOperator": { + "value": "GreaterThan" + }, + "HybridVMHeartBeatRGTimeAggregation": { + "value": "Count" + }, + "HybridVMHeartBeatRGFailingPeriods": { + "value": "1" + }, + "HybridVMNetworkInAlertSeverity": { + "value": "2" + }, + "HybridVMNetworkInWindowSize": { + "value": "PT15M" + }, + "HybridVMNetworkInEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMNetworkInAutoMitigate": { + "value": "true" + }, + "HybridVMNetworkInAutoResolve": { + "value": "true" + }, + "HybridVMNetworkInAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMNetworkInPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMNetworkInAlertState": { + "value": "true" + }, + "HybridVMNetworkInThreshold": { + "value": "10000000" + }, + "HybridVMNetworkInOperator": { + "value": "GreaterThan" + }, + "HybridVMNetworkInTimeAggregation": { + "value": "Count" + }, + "HybridVMNetworkInEvaluationPeriods": { + "value": "1" + }, + "HybridVMNetworkInFailingPeriods": { + "value": "1" + }, + "HybridVMNetworkInComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMNetworkOutAlertSeverity": { + "value": "2" + }, + "HybridVMNetworkOutWindowSize": { + "value": "PT15M" + }, + "HybridVMNetworkOutEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMNetworkOutAutoMitigate": { + "value": "true" + }, + "HybridVMNetworkOutAutoResolve": { + "value": "true" + }, + "HybridVMNetworkOutAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMNetworkOutPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMNetworkOutAlertState": { + "value": "true" + }, + "HybridVMNetworkOutThreshold": { + "value": "10000000" + }, + "HybridVMNetworkOutOperator": { + "value": "GreaterThan" + }, + "HybridVMNetworkOutTimeAggregation": { + "value": "Count" + }, + "HybridVMNetworkOutEvaluationPeriods": { + "value": "1" + }, + "HybridVMNetworkOutFailingPeriods": { + "value": "1" + }, + "HybridVMNetworkOutComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMOSDiskReadLatencyAlertSeverity": { + "value": "2" + }, + "HybridVMOSDiskReadLatencyWindowSize": { + "value": "PT15M" + }, + "HybridVMOSDiskReadLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMOSDiskReadLatencyAutoMitigate": { + "value": "true" + }, + "HybridVMOSDiskReadLatencyAutoResolve": { + "value": "true" + }, + "HybridVMOSDiskReadLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMOSDiskReadLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMOSDiskReadLatencyAlertState": { + "value": "true" + }, + "HybridVMOSDiskReadLatencyThreshold": { + "value": "30" + }, + "HybridVMOSDiskReadLatencyOperator": { + "value": "GreaterThan" + }, + "HybridVMOSDiskReadLatencyTimeAggregation": { + "value": "Count" + }, + "HybridVMOSDiskReadLatencyEvaluationPeriods": { + "value": "1" + }, + "HybridVMOSDiskReadLatencyFailingPeriods": { + "value": "1" + }, + "HybridVMOSDiskReadLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMOSDiskWriteLatencyAlertSeverity": { + "value": "2" + }, + "HybridVMOSDiskWriteLatencyWindowSize": { + "value": "PT15M" + }, + "HybridVMOSDiskWriteLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMOSDiskWriteLatencyAutoMitigate": { + "value": "true" + }, + "HybridVMOSDiskWriteLatencyAutoResolve": { + "value": "true" + }, + "HybridVMOSDiskWriteLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMOSDiskWriteLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMOSDiskWriteLatencyAlertState": { + "value": "true" + }, + "HybridVMOSDiskWriteLatencyThreshold": { + "value": "30" + }, + "HybridVMOSDiskWriteLatencyOperator": { + "value": "GreaterThan" + }, + "HybridVMOSDiskWriteLatencyTimeAggregation": { + "value": "Count" + }, + "HybridVMOSDiskWriteLatencyEvaluationPeriods": { + "value": "1" + }, + "HybridVMOSDiskWriteLatencyFailingPeriods": { + "value": "1" + }, + "HybridVMOSDiskWriteLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMOSDiskSpaceAlertSeverity": { + "value": "2" + }, + "HybridVMOSDiskSpaceWindowSize": { + "value": "PT15M" + }, + "HybridVMOSDiskSpaceEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMOSDiskSpaceAutoMitigate": { + "value": "true" + }, + "HybridVMOSDiskSpaceAutoResolve": { + "value": "true" + }, + "HybridVMOSDiskSpaceAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMOSDiskSpacePolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMOSDiskSpaceAlertState": { + "value": "true" + }, + "HybridVMOSDiskSpaceThreshold": { + "value": "10" + }, + "HybridVMOSDiskSpaceOperator": { + "value": "GreaterThan" + }, + "HybridVMOSDiskSpaceTimeAggregation": { + "value": "Count" + }, + "HybridVMOSDiskSpaceEvaluationPeriods": { + "value": "1" + }, + "HybridVMOSDiskSpaceFailingPeriods": { + "value": "1" + }, + "HybridVMOSDiskSpaceComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMPercentCPUAlertSeverity": { + "value": "2" + }, + "HybridVMPercentCPUWindowSize": { + "value": "PT15M" + }, + "HybridVMPercentCPUEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMPercentCPUAutoMitigate": { + "value": "true" + }, + "HybridVMPercentCPUAutoResolve": { + "value": "true" + }, + "HybridVMPercentCPUAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMPercentCPUPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMPercentCPUAlertState": { + "value": "true" + }, + "HybridVMPercentCPUThreshold": { + "value": "85" + }, + "HybridVMPercentCPUOperator": { + "value": "GreaterThan" + }, + "HybridVMPercentCPUTimeAggregation": { + "value": "Count" + }, + "HybridVMPercentMemoryAlertSeverity": { + "value": "2" + }, + "HybridVMPercentCPUFailingPeriods": { + "value": "1" + }, + "HybridVMPercentMemoryWindowSize": { + "value": "PT15M" + }, + "HybridVMPercentMemoryEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMPercentMemoryAutoMitigate": { + "value": "true" + }, + "HybridVMPercentMemoryAutoResolve": { + "value": "true" + }, + "HybridVMPercentMemoryAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMPercentMemoryPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMPercentMemoryAlertState": { + "value": "true" + }, + "HybridVMPercentMemoryThreshold": { + "value": "10" + }, + "HybridVMPercentMemoryOperator": { + "value": "GreaterThan" + }, + "HybridVMPercentMemoryTimeAggregation": { + "value": "Count" + }, + "HybridVMPercentMemoryFailingPeriods": { + "value": "1" + }, + "HybridVMDataDiskSpaceAlertSeverity": { + "value": "2" + }, + "HybridVMDataDiskSpaceWindowSize": { + "value": "PT15M" + }, + "HybridVMDataDiskSpaceEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMDataDiskSpaceAutoMitigate": { + "value": "true" + }, + "HybridVMDataDiskSpaceAutoResolve": { + "value": "true" + }, + "HybridVMDataDiskSpaceAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMDataDiskSpacePolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMDataDiskSpaceAlertState": { + "value": "true" + }, + "HybridVMDataDiskSpaceThreshold": { + "value": "10" + }, + "HybridVMDataDiskSpaceOperator": { + "value": "GreaterThan" + }, + "HybridVMDataDiskSpaceTimeAggregation": { + "value": "Count" + }, + "HybridVMDataDiskSpaceEvaluationPeriods": { + "value": "1" + }, + "HybridVMDataDiskSpaceFailingPeriods": { + "value": "1" + }, + "HybridVMDataDiskReadLatencyAlertSeverity": { + "value": "2" + }, + "HybridVMDataDiskReadLatencyWindowSize": { + "value": "PT15M" + }, + "HybridVMDataDiskReadLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMDataDiskReadLatencyAutoMitigate": { + "value": "true" + }, + "HybridVMDataDiskReadLatencyAutoResolve": { + "value": "true" + }, + "HybridVMDataDiskReadLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMDataDiskReadLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMDataDiskReadLatencyAlertState": { + "value": "true" + }, + "HybridVMDataDiskReadLatencyThreshold": { + "value": "30" + }, + "HybridVMDataDiskReadLatencyOperator": { + "value": "GreaterThan" + }, + "HybridVMDataDiskReadLatencyTimeAggregation": { + "value": "Count" + }, + "HybridVMDataDiskReadLatencyEvaluationPeriods": { + "value": "1" + }, + "HybridVMDataDiskReadLatencyFailingPeriods": { + "value": "1" + }, + "HybridVMDataDiskReadLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMDataDiskWriteLatencyAlertSeverity": { + "value": "2" + }, + "HybridVMDataDiskWriteLatencyWindowSize": { + "value": "PT15M" + }, + "HybridVMDataDiskWriteLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "HybridVMDataDiskWriteLatencyAutoMitigate": { + "value": "true" + }, + "HybridVMDataDiskWriteLatencyAutoResolve": { + "value": "true" + }, + "HybridVMDataDiskWriteLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "HybridVMDataDiskWriteLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMDataDiskWriteLatencyAlertState": { + "value": "true" + }, + "HybridVMDataDiskWriteLatencyThreshold": { + "value": "30" + }, + "HybridVMDataDiskWriteLatencyOperator": { + "value": "GreaterThan" + }, + "HybridVMDataDiskWriteLatencyTimeAggregation": { + "value": "Count" + }, + "HybridVMDataDiskWriteLatencyEvaluationPeriods": { + "value": "1" + }, + "HybridVMDataDiskWriteLatencyFailingPeriods": { + "value": "1" + }, + "HybridVMDataDiskWriteLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "HybridVMDisconnectedAlertSeverity": { + "value": "1" + }, + "HybridVMDisconnectedAlertWindowSize": { + "value": "P1D" + }, + "HybridVMDisconnectedAlertEvaluationFrequency": { + "value": "PT10M" + }, + "HybridVMDisconnectedAlertAutoMitigate": { + "value": "true" + }, + "HybridVMDisconnectedAlertPolicyEffect": { + "value": "deployIfNotExists" + }, + "HybridVMDisconnectedAlertState": { + "value": "true" + }, + "HybridVMDisconnectedAlertThreshold": { + "value": "10m" + }, + "HybridVMDisconnectedAlertOperator": { + "value": "GreaterThan" + }, + "HybridVMDisconnectedAlertTimeAggregation": { + "value": "Count" + }, + "HybridVMDisconnectedAlertEvaluationPeriods": { + "value": "1" + }, + "HybridVMDisconnectedAlertFailingPeriods": { + "value": "1" + } + } + }, + "policyAssignmentParametersManagement": { + "value": { + "AATotalJobAlertSeverity": { + "value": "2" + }, + "AATotalJobAlertWindowSize": { + "value": "PT5M" + }, + "AATotalJobAlertEvaluationFrequency": { + "value": "PT1M" + }, + "AATotalJobAlertPolicyEffect": { + "value": "deployIfNotExists" + }, + "AATotalJobAlertAlertState": { + "value": "true" + }, + "AATotalJobAlertThreshold": { + "value": "20" + }, + "RVBackupHealthMonitorPolicyEffect": { + "value": "modify" + }, + "StorageAccountAvailabilityAlertSeverity": { + "value": "1" + }, + "StorageAccountAvailabilityWindowSize": { + "value": "PT5M" + }, + "StorageAccountAvailabilityFrequency": { + "value": "PT5M" + }, + "StorageAccountAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "StorageAccountAvailabilityAlertState": { + "value": "true" + }, + "StorageAccountAvailabilityThreshold": { + "value": "90" + }, + "StorageAccountDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "StorageAccountDeleteAlertState": { + "value": "true" + }, + "activityLAWDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityLAWDeleteAlertState": { + "value": "true" + }, + "activityLAWKeyRegenPolicyEffect": { + "value": "deployIfNotExists" + }, + "activityLAWKeyRegenAlertState": { + "value": "true" + }, + "LAWDailyCapLimitSeverity": { + "value": "1" + }, + "LAWDailyCapLimitOperator": { + "value": "GreaterThan" + }, + "LAWDailyCapLimitTimeAggregation": { + "value": "Count" + }, + "LAWDailyCapLimitWindowSize": { + "value": "PT5M" + }, + "LAWDailyCapLimitEvaluationFrequency": { + "value": "PT5M" + }, + "LAWDailyCapLimitAutoMitigate": { + "value": "true" + }, + "LAWDailyCapLimitThreshold": { + "value": "0" + }, + "LAWDailyCapLimitFailingPeriods": { + "value": "1" + }, + "LAWDailyCapLimitEvaluationPeriods": { + "value": "1" + }, + "LAWDailyCapLimitPolicyEffect": { + "value": "deployIfNotExists" + }, + "LAWDailyCapLimitAlertState": { + "value": "true" + } + } + }, + "policyAssignmentParametersKeyManagement": { + "value": { + "KVRequestAlertSeverity": { + "value": "2" + }, + "KVRequestWindowSize": { + "value": "PT5M" + }, + "KVRequestEvaluationFrequency": { + "value": "PT5M" + }, + "KVRequestPolicyEffect": { + "value": "disabled" + }, + "KVRequestAlertState": { + "value": "true" + }, + "KvAvailabilityAlertSeverity": { + "value": "1" + }, + "KvAvailabilityWindowSize": { + "value": "PT1M" + }, + "KvAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "KvAvailabilityPolicyEffect": { + "value": "disabled" + }, + "KvAvailabilityAlertState": { + "value": "true" + }, + "KVAvailabilityThreshold": { + "value": "20" + }, + "KvLatencyAvailabilityAlertSeverity": { + "value": "3" + }, + "KvLatencyAvailabilityWindowSize": { + "value": "PT5M" + }, + "KvLatencyAvailabilityEvaluationFrequency": { + "value": "PT5M" + }, + "KvLatencyAvailabilityPolicyEffect": { + "value": "disabled" + }, + "KvLatencyAvailabilityAlertState": { + "value": "true" + }, + "KvLatencyAvailabilityThreshold": { + "value": "1000" + }, + "KVCapacityAlertSeverity": { + "value": "1" + }, + "KVCapacityWindowSize": { + "value": "PT5M" + }, + "KVCapacityEvaluationFrequency": { + "value": "PT1M" + }, + "KVCapacityPolicyEffect": { + "value": "disabled" + }, + "KVCapacityAlertState": { + "value": "true" + }, + "KVCapacityThreshold": { + "value": "75" + }, + "activityKVDeleteAlertState": { + "value": "true" + }, + "activityKVDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "HSMsAvailabilityAlertSeverity": { + "value": "1" + }, + "HSMsAvailabilityWindowSize": { + "value": "PT1M" + }, + "HSMsAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "HSMsAvailabilityPolicyEffect": { + "value": "disabled" + }, + "HSMsAvailabilityAlertState": { + "value": "true" + }, + "HSMsAvailabilityThreshold": { + "value": "20" + }, + "HSMsLatencyAvailabilityAlertSeverity": { + "value": "3" + }, + "HSMsLatencyAvailabilityWindowSize": { + "value": "PT5M" + }, + "HSMsLatencyAvailabilityEvaluationFrequency": { + "value": "PT5M" + }, + "HSMsLatencyAvailabilityPolicyEffect": { + "value": "disabled" + }, + "HSMsLatencyAvailabilityAlertState": { + "value": "true" + }, + "HSMsLatencyAvailabilityThreshold": { + "value": "1000" + }, + "activityHSMsDeleteAlertState": { + "value": "true" + }, + "activityHSMsDeletePolicyEffect": { + "value": "deployIfNotExists" + } + } + }, + "policyAssignmentParametersLoadBalancing": { + "value": { + "PIPDDoSAttackAlertSeverity": { + "value": "1" + }, + "PIPDDoSAttackWindowSize": { + "value": "PT5M" + }, + "PIPDDoSAttackEvaluationFrequency": { + "value": "PT5M" + }, + "PIPDDoSAttackPolicyEffect": { + "value": "deployIfNotExists" + }, + "PIPDDoSAttackAlertState": { + "value": "true" + }, + "PIPDDoSAttackThreshold": { + "value": "0" + }, + "PIPPacketsInDDoSAlertSeverity": { + "value": "4" + }, + "PIPPacketsInDDoSWindowSize": { + "value": "PT5M" + }, + "PIPPacketsInDDoSEvaluationFrequency": { + "value": "PT5M" + }, + "PIPPacketsInDDoSPolicyEffect": { + "value": "disabled" + }, + "PIPPacketsInDDoSAlertState": { + "value": "true" + }, + "PIPPacketsInDDoSThreshold": { + "value": "40000" + }, + "PIPVIPAvailabilityAlertSeverity": { + "value": "1" + }, + "PIPVIPAvailabilityWindowSize": { + "value": "PT5M" + }, + "PIPVIPAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "PIPVIPAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "PIPVIPAvailabilityAlertState": { + "value": "true" + }, + "PIPVIPAvailabilityThreshold": { + "value": "1" + }, + "PIPBytesInDDoSAlertSeverity": { + "value": "4" + }, + "PIPBytesInDDoSWindowSize": { + "value": "PT5M" + }, + "PIPBytesInDDoSEvaluationFrequency": { + "value": "PT5M" + }, + "PIPBytesInDDoSPolicyEffect": { + "value": "disabled" + }, + "PIPBytesInDDoSAlertState": { + "value": "true" + }, + "PIPBytesInDDoSThreshold": { + "value": "8000000" + }, + "VNETDDOSAttackAlertSeverity": { + "value": "1" + }, + "VNETDDOSAttackWindowSize": { + "value": "PT5M" + }, + "VNETDDOSAttackEvaluationFrequency": { + "value": "PT1M" + }, + "VNETDDOSAttackPolicyEffect": { + "value": "deployIfNotExists" + }, + "VNETDDOSAttackAlertState": { + "value": "true" + }, + "VNETDDOSAttackThreshold": { + "value": "1" + }, + "AGWApplicationGatewayTotalTimeAlertSeverity": { + "value": "2" + }, + "AGWApplicationGatewayTotalTimeAlertSensitivity": { + "value": "Medium" + }, + "AGWApplicationGatewayTotalTimeWindowSize": { + "value": "PT5M" + }, + "AGWApplicationGatewayTotalTimeEvaluationFrequency": { + "value": "PT1M" + }, + "AGWApplicationGatewayTotalTimePolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWApplicationGatewayTotalTimeAlertState": { + "value": "true" + }, + "AGWBackendLastByteResponseTimeAlertSeverity": { + "value": "2" + }, + "AGWBackendLastByteResponseTimeAlertSensitivity": { + "value": "Medium" + }, + "AGWBackendLastByteResponseTimeWindowSize": { + "value": "PT5M" + }, + "AGWBackendLastByteResponseTimeEvaluationFrequency": { + "value": "PT1M" + }, + "AGWBackendLastByteResponseTimePolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWBackendLastByteResponseTimeAlertState": { + "value": "true" + }, + "AGWCapacityUnitsAlertSeverity": { + "value": "2" + }, + "AGWCapacityUnitsWindowSize": { + "value": "PT5M" + }, + "AGWCapacityUnitsEvaluationFrequency": { + "value": "PT1M" + }, + "AGWCapacityUnitsPolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWCapacityUnitsAlertState": { + "value": "true" + }, + "AGWComputeUnitsAlertSeverity": { + "value": "2" + }, + "AGWComputeUnitsWindowSize": { + "value": "PT5M" + }, + "AGWComputeUnitsEvaluationFrequency": { + "value": "PT1M" + }, + "AGWComputeUnitsPolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWComputeUnitsAlertState": { + "value": "true" + }, + "AGWCPUUtilAlertSeverity": { + "value": "2" + }, + "AGWCPUUtilWindowSize": { + "value": "PT5M" + }, + "AGWCPUUtilEvaluationFrequency": { + "value": "PT1M" + }, + "AGWCPUUtilPolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWCPUUtilAlertState": { + "value": "true" + }, + "AGWFailedRequestsAlertSeverity": { + "value": "2" + }, + "AGWFailedRequestsAlertSensitivity": { + "value": "Medium" + }, + "AGWFailedRequestsWindowSize": { + "value": "PT5M" + }, + "AGWFailedRequestsEvaluationFrequency": { + "value": "PT1M" + }, + "AGWFailedRequestsPolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWFailedRequestsAlertState": { + "value": "true" + }, + "AGWResponseStatusAlertSeverity": { + "value": "2" + }, + "AGWResponseStatusAlertSensitivity": { + "value": "Medium" + }, + "AGWResponseStatusWindowSize": { + "value": "PT5M" + }, + "AGWResponseStatusEvaluationFrequency": { + "value": "PT1M" + }, + "AGWResponseStatusPolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWResponseStatusAlertState": { + "value": "true" + }, + "AGWUnhealthyHostCountAlertSeverity": { + "value": "2" + }, + "AGWUnhealthyHostCountWindowSize": { + "value": "PT5M" + }, + "AGWUnhealthyHostCountEvaluationFrequency": { + "value": "PT1M" + }, + "AGWUnhealthyHostCountPolicyEffect": { + "value": "deployIfNotExists" + }, + "AGWUnhealthyHostCountAlertState": { + "value": "true" + }, + "LBDatapathAvailabilityAlertSeverity": { + "value": "0" + }, + "LBDatapathAvailabilityWindowSize": { + "value": "PT5M" + }, + "LBDatapathAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "LBDatapathAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBDatapathAvailabilityAlertState": { + "value": "true" + }, + "LBGlobalBackendAvailabilityAlertSeverity": { + "value": "0" + }, + "LBGlobalBackendAvailabilityWindowSize": { + "value": "PT5M" + }, + "LBGlobalBackendAvailabilityEvaluationFrequency": { + "value": "PT1M" + }, + "LBGlobalBackendAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBGlobalBackendAvailabilityAlertState": { + "value": "true" + }, + "LBHealthProbeStatusAlertSeverity": { + "value": "2" + }, + "LBHealthProbeStatusWindowSize": { + "value": "PT5M" + }, + "LBHealthProbeStatusEvaluationFrequency": { + "value": "PT1M" + }, + "LBHealthProbeStatusPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBHealthProbeStatusAlertState": { + "value": "true" + }, + "LBUsedSNATPortsAlertSeverity": { + "value": "1" + }, + "LBUsedSNATPortsWindowSize": { + "value": "PT5M" + }, + "LBUsedSNATPortsEvaluationFrequency": { + "value": "PT1M" + }, + "LBUsedSNATPortsPolicyEffect": { + "value": "deployIfNotExists" + }, + "LBUsedSNATPortsAlertState": { + "value": "true" + }, + "TMEndpointHealthAlertSeverity": { + "value": "2" + }, + "TMEndpointHealthWindowSize": { + "value": "PT5M" + }, + "TMEndpointHealthEvaluationFrequency": { + "value": "PT1M" + }, + "TMEndpointHealthPolicyEffect": { + "value": "deployIfNotExists" + }, + "TMEndpointHealthAlertState": { + "value": "true" + }, + "CDNPOriginHealthPercentageAlertSeverity": { + "value": "2" + }, + "CDNPOriginHealthPercentageWindowSize": { + "value": "PT5M" + }, + "CDNPOriginHealthPercentageEvaluationFrequency": { + "value": "PT1M" + }, + "CDNPOriginHealthPercentagePolicyEffect": { + "value": "deployIfNotExists" + }, + "CDNPOriginHealthPercentageAlertState": { + "value": "true" + }, + "CDNPOriginLatencyAlertSeverity": { + "value": "2" + }, + "CDNPOriginLatencyWindowSize": { + "value": "PT5M" + }, + "CDNPOriginLatencyEvaluationFrequency": { + "value": "PT1M" + }, + "CDNPOriginLatencyPolicyEffect": { + "value": "disabled" + }, + "CDNPOriginLatencyAlertState": { + "value": "true" + }, + "CDNPPercentage4XXAlertSeverity": { + "value": "2" + }, + "CDNPPercentage4XXWindowSize": { + "value": "PT5M" + }, + "CDNPPercentage4XXEvaluationFrequency": { + "value": "PT1M" + }, + "CDNPPercentage4XXPolicyEffect": { + "value": "deployIfNotExists" + }, + "CDNPPercentage4XXAlertState": { + "value": "true" + }, + "CDNPPercentage5XXAlertSeverity": { + "value": "2" + }, + "CDNPPercentage5XXWindowSize": { + "value": "PT5M" + }, + "CDNPPercentage5XXEvaluationFrequency": { + "value": "PT1M" + }, + "CDNPPercentage5XXPolicyEffect": { + "value": "deployIfNotExists" + }, + "CDNPPercentage5XXAlertState": { + "value": "true" + }, + "FDBackendHealthAlertSeverity": { + "value": "2" + }, + "FDBackendHealthWindowSize": { + "value": "PT5M" + }, + "FDBackendHealthEvaluationFrequency": { + "value": "PT1M" + }, + "FDBackendHealthPolicyEffect": { + "value": "deployIfNotExists" + }, + "FDBackendHealthAlertState": { + "value": "true" + }, + "FDBackendRequestLatencyAlertSeverity": { + "value": "2" + }, + "FDBackendRequestLatencyWindowSize": { + "value": "PT5M" + }, + "FDBackendRequestLatencyEvaluationFrequency": { + "value": "PT1M" + }, + "FDBackendRequestLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "FDBackendRequestLatencyAlertState": { + "value": "true" + } + } + }, + "policyAssignmentParametersNetworkChanges": { + "value": { + "activityNSGDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityNSGDeleteAlertState": { + "value": "true" + }, + "activityUDRUpdatePolicyEffect": { + "value": "deployIfNotExists" + }, + "activityUDRUpdateAlertState": { + "value": "true" + } + } + }, + "policyAssignmentParametersRecoveryServices": { + "value": { + "RVBackupHealthMonitorPolicyEffect": { + "value": "modify" + } + } + }, + "policyAssignmentParametersStorage": { + "value": { + "StorageAccountAvailabilityAlertSeverity": { + "value": "1" + }, + "StorageAccountAvailabilityWindowSize": { + "value": "PT5M" + }, + "StorageAccountAvailabilityFrequency": { + "value": "PT5M" + }, + "StorageAccountAvailabilityPolicyEffect": { + "value": "deployIfNotExists" + }, + "StorageAccountAvailabilityAlertState": { + "value": "true" + }, + "StorageAccountAvailabilityThreshold": { + "value": "90" + }, + "StorageAccountDeletePolicyEffect": { + "value": "deployIfNotExists" + }, + "StorageAccountDeleteAlertState": { + "value": "true" + } + } + }, + "policyAssignmentParametersVM": { + "value": { + "VMHeartBeatRGAlertSeverity": { + "value": "1" + }, + "VMHeartBeatRGWindowSize": { + "value": "PT6H" + }, + "VMHeartBeatRGEvaluationFrequency": { + "value": "PT5M" + }, + "VMHeartBeatRGAutoMitigate": { + "value": "true" + }, + "VMHeartBeatRGAutoResolve": { + "value": "true" + }, + "VMHeartBeatRGAutoResolveTime": { + "value": "00:10:00" + }, + "VMHeartBeatRGPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMHeartBeatRGAlertState": { + "value": "true" + }, + "VMHeartBeatRGThreshold": { + "value": "10" + }, + "VMHeartBeatRGOperator": { + "value": "GreaterThan" + }, + "VMHeartBeatRGTimeAggregation": { + "value": "Count" + }, + "VMHeartBeatRGComputersToInclude": { + "value": [ + "*" + ] + }, + "VMHeartBeatRGFailingPeriods": { + "value": "1" + }, + "VMNetworkInAlertSeverity": { + "value": "2" + }, + "VMNetworkInWindowSize": { + "value": "PT15M" + }, + "VMNetworkInEvaluationFrequency": { + "value": "PT5M" + }, + "VMNetworkInAutoMitigate": { + "value": "true" + }, + "VMNetworkInAutoResolve": { + "value": "true" + }, + "VMNetworkInAutoResolveTime": { + "value": "00:10:00" + }, + "VMNetworkInPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMNetworkInAlertState": { + "value": "true" + }, + "VMNetworkInThreshold": { + "value": "10000000" + }, + "VMNetworkInOperator": { + "value": "GreaterThan" + }, + "VMNetworkInTimeAggregation": { + "value": "Count" + }, + "VMNetworkInEvaluationPeriods": { + "value": "1" + }, + "VMNetworkInFailingPeriods": { + "value": "1" + }, + "VMNetworkInComputersToInclude": { + "value": [ + "*" + ] + }, + "VMNetworkOutAlertSeverity": { + "value": "2" + }, + "VMNetworkOutWindowSize": { + "value": "PT15M" + }, + "VMNetworkOutEvaluationFrequency": { + "value": "PT5M" + }, + "VMNetworkOutAutoMitigate": { + "value": "true" + }, + "VMNetworkOutAutoResolve": { + "value": "true" + }, + "VMNetworkOutAutoResolveTime": { + "value": "00:10:00" + }, + "VMNetworkOutPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMNetworkOutAlertState": { + "value": "true" + }, + "VMNetworkOutThreshold": { + "value": "10000000" + }, + "VMNetworkOutOperator": { + "value": "GreaterThan" + }, + "VMNetworkOutTimeAggregation": { + "value": "Count" + }, + "VMNetworkOutEvaluationPeriods": { + "value": "1" + }, + "VMNetworkOutFailingPeriods": { + "value": "1" + }, + "VMNetworkOutComputersToInclude": { + "value": [ + "*" + ] + }, + "VMOSDiskReadLatencyAlertSeverity": { + "value": "2" + }, + "VMOSDiskReadLatencyWindowSize": { + "value": "PT15M" + }, + "VMOSDiskReadLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "VMOSDiskReadLatencyAutoMitigate": { + "value": "true" + }, + "VMOSDiskReadLatencyAutoResolve": { + "value": "true" + }, + "VMOSDiskReadLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "VMOSDiskReadLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMOSDiskReadLatencyAlertState": { + "value": "true" + }, + "VMOSDiskReadLatencyThreshold": { + "value": "30" + }, + "VMOSDiskReadLatencyOperator": { + "value": "GreaterThan" + }, + "VMOSDiskReadLatencyTimeAggregation": { + "value": "Count" + }, + "VMOSDiskReadLatencyEvaluationPeriods": { + "value": "1" + }, + "VMOSDiskReadLatencyFailingPeriods": { + "value": "1" + }, + "VMOSDiskReadLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "VMOSDiskWriteLatencyAlertSeverity": { + "value": "2" + }, + "VMOSDiskWriteLatencyWindowSize": { + "value": "PT15M" + }, + "VMOSDiskWriteLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "VMOSDiskWriteLatencyAutoMitigate": { + "value": "true" + }, + "VMOSDiskWriteLatencyAutoResolve": { + "value": "true" + }, + "VMOSDiskWriteLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "VMOSDiskWriteLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMOSDiskWriteLatencyAlertState": { + "value": "true" + }, + "VMOSDiskWriteLatencyThreshold": { + "value": "30" + }, + "VMOSDiskWriteLatencyOperator": { + "value": "GreaterThan" + }, + "VMOSDiskWriteLatencyTimeAggregation": { + "value": "Count" + }, + "VMOSDiskWriteLatencyEvaluationPeriods": { + "value": "1" + }, + "VMOSDiskWriteLatencyFailingPeriods": { + "value": "1" + }, + "VMOSDiskWriteLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "VMOSDiskSpaceAlertSeverity": { + "value": "2" + }, + "VMOSDiskSpaceWindowSize": { + "value": "PT15M" + }, + "VMOSDiskSpaceEvaluationFrequency": { + "value": "PT5M" + }, + "VMOSDiskSpaceAutoMitigate": { + "value": "true" + }, + "VMOSDiskSpaceAutoResolve": { + "value": "true" + }, + "VMOSDiskSpaceAutoResolveTime": { + "value": "00:10:00" + }, + "VMOSDiskSpacePolicyEffect": { + "value": "deployIfNotExists" + }, + "VMOSDiskSpaceAlertState": { + "value": "true" + }, + "VMOSDiskSpaceThreshold": { + "value": "10" + }, + "VMOSDiskSpaceOperator": { + "value": "GreaterThan" + }, + "VMOSDiskSpaceTimeAggregation": { + "value": "Count" + }, + "VMOSDiskSpaceEvaluationPeriods": { + "value": "1" + }, + "VMOSDiskSpaceFailingPeriods": { + "value": "1" + }, + "VMOSDiskSpaceComputersToInclude": { + "value": [ + "*" + ] + }, + "VMPercentCPUAlertSeverity": { + "value": "2" + }, + "VMPercentCPUWindowSize": { + "value": "PT15M" + }, + "VMPercentCPUEvaluationFrequency": { + "value": "PT5M" + }, + "VMPercentCPUAutoMitigate": { + "value": "true" + }, + "VMPercentCPUAutoResolve": { + "value": "true" + }, + "VMPercentCPUAutoResolveTime": { + "value": "00:10:00" + }, + "VMPercentCPUPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMPercentCPUAlertState": { + "value": "true" + }, + "VMPercentCPUThreshold": { + "value": "85" + }, + "VMPercentCPUOperator": { + "value": "GreaterThan" + }, + "VMPercentCPUTimeAggregation": { + "value": "Count" + }, + "VMPercentCPUFailingPeriods": { + "value": "1" + }, + "VMPercentMemoryAlertSeverity": { + "value": "2" + }, + "VMPercentMemoryWindowSize": { + "value": "PT15M" + }, + "VMPercentMemoryEvaluationFrequency": { + "value": "PT5M" + }, + "VMPercentMemoryAutoMitigate": { + "value": "true" + }, + "VMPercentMemoryAutoResolve": { + "value": "true" + }, + "VMPercentMemoryAutoResolveTime": { + "value": "00:10:00" + }, + "VMPercentMemoryPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMPercentMemoryAlertState": { + "value": "true" + }, + "VMPercentMemoryThreshold": { + "value": "10" + }, + "VMPercentMemoryOperator": { + "value": "GreaterThan" + }, + "VMPercentMemoryTimeAggregation": { + "value": "Count" + }, + "VMPercentMemoryFailingPeriods": { + "value": "1" + }, + "VMDataDiskSpaceAlertSeverity": { + "value": "2" + }, + "VMDataDiskSpaceWindowSize": { + "value": "PT15M" + }, + "VMDataDiskSpaceEvaluationFrequency": { + "value": "PT5M" + }, + "VMDataDiskSpaceAutoMitigate": { + "value": "true" + }, + "VMDataDiskSpaceAutoResolve": { + "value": "true" + }, + "VMDataDiskSpaceAutoResolveTime": { + "value": "00:10:00" + }, + "VMDataDiskSpacePolicyEffect": { + "value": "deployIfNotExists" + }, + "VMDataDiskSpaceAlertState": { + "value": "true" + }, + "VMDataDiskSpaceThreshold": { + "value": "10" + }, + "VMDataDiskSpaceOperator": { + "value": "GreaterThan" + }, + "VMDataDiskSpaceTimeAggregation": { + "value": "Count" + }, + "VMDataDiskSpaceEvaluationPeriods": { + "value": "1" + }, + "VMDataDiskSpaceFailingPeriods": { + "value": "1" + }, + "VMDataDiskReadLatencyAlertSeverity": { + "value": "2" + }, + "VMDataDiskReadLatencyWindowSize": { + "value": "PT15M" + }, + "VMDataDiskReadLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "VMDataDiskReadLatencyAutoMitigate": { + "value": "true" + }, + "VMDataDiskReadLatencyAutoResolve": { + "value": "true" + }, + "VMDataDiskReadLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "VMDataDiskReadLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMDataDiskReadLatencyAlertState": { + "value": "true" + }, + "VMDataDiskReadLatencyThreshold": { + "value": "30" + }, + "VMDataDiskReadLatencyOperator": { + "value": "GreaterThan" + }, + "VMDataDiskReadLatencyTimeAggregation": { + "value": "Count" + }, + "VMDataDiskReadLatencyEvaluationPeriods": { + "value": "1" + }, + "VMDataDiskReadLatencyFailingPeriods": { + "value": "1" + }, + "VMDataDiskReadLatencyComputersToInclude": { + "value": [ + "*" + ] + }, + "VMDataDiskWriteLatencyAlertSeverity": { + "value": "2" + }, + "VMDataDiskWriteLatencyWindowSize": { + "value": "PT15M" + }, + "VMDataDiskWriteLatencyEvaluationFrequency": { + "value": "PT5M" + }, + "VMDataDiskWriteLatencyAutoMitigate": { + "value": "true" + }, + "VMDataDiskWriteLatencyAutoResolve": { + "value": "true" + }, + "VMDataDiskWriteLatencyAutoResolveTime": { + "value": "00:10:00" + }, + "VMDataDiskWriteLatencyPolicyEffect": { + "value": "deployIfNotExists" + }, + "VMDataDiskWriteLatencyAlertState": { + "value": "true" + }, + "VMDataDiskWriteLatencyThreshold": { + "value": "30" + }, + "VMDataDiskWriteLatencyOperator": { + "value": "GreaterThan" + }, + "VMDataDiskWriteLatencyTimeAggregation": { + "value": "Count" + }, + "VMDataDiskWriteLatencyEvaluationPeriods": { + "value": "1" + }, + "VMDataDiskWriteLatencyFailingPeriods": { + "value": "1" + }, + "VMDataDiskWriteLatencyComputersToInclude": { + "value": [ + "*" + ] + } + } + }, + "policyAssignmentParametersWeb": { + "value": { + "WSFCPUPercentageAlertSeverity": { + "value": "2" + }, + "WSFCPUPercentageWindowSize": { + "value": "PT5M" + }, + "WSFCPUPercentageEvaluationFrequency": { + "value": "PT1M" + }, + "WSFCPUPercentagePolicyEffect": { + "value": "deployIfNotExists" + }, + "WSFCPUPercentageAlertState": { + "value": "true" + }, + "WSFCPUPercentageThreshold": { + "value": "90" + }, + "WSFMemoryPercentageAlertSeverity": { + "value": "2" + }, + "WSFMemoryPercentageWindowSize": { + "value": "PT5M" + }, + "WSFMemoryPercentageEvaluationFrequency": { + "value": "PT1M" + }, + "WSFMemoryPercentagePolicyEffect": { + "value": "deployIfNotExists" + }, + "WSFMemoryPercentageAlertState": { + "value": "true" + }, + "WSFMemoryPercentageThreshold": { + "value": "85" + }, + "WSFDiskQueueLengthAlertSeverity": { + "value": "2" + }, + "WSFDiskQueueLengthWindowSize": { + "value": "PT5M" + }, + "WSFDiskQueueLengthEvaluationFrequency": { + "value": "PT1M" + }, + "WSFDiskQueueLengthPolicyEffect": { + "value": "deployIfNotExists" + }, + "WSFDiskQueueLengthAlertState": { + "value": "true" + }, + "WSFHttpQueueLengthAlertSeverity": { + "value": "2" + }, + "WSFHttpQueueLengthWindowSize": { + "value": "PT5M" + }, + "WSFHttpQueueLengthEvaluationFrequency": { + "value": "PT1M" + }, + "WSFHttpQueueLengthPolicyEffect": { + "value": "deployIfNotExists" + }, + "WSFHttpQueueLengthAlertState": { + "value": "true" + } + } + } + } +} From a12f9585fe47f211be395d13a858c93eb9b0f905 Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Mon, 9 Dec 2024 21:51:10 +0100 Subject: [PATCH 07/21] added mnew release to the WhatsNew page --- .../patterns/alz/Overview/Whats-New.md | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/content/patterns/alz/Overview/Whats-New.md b/docs/content/patterns/alz/Overview/Whats-New.md index c45afdcb6..6ab352a14 100644 --- a/docs/content/patterns/alz/Overview/Whats-New.md +++ b/docs/content/patterns/alz/Overview/Whats-New.md @@ -8,6 +8,30 @@ For the latest updates, visit the [Releases](https://github.com/Azure/azure-moni To update your deployment with the latest release, refer to the [Update to new releases](../../HowTo/UpdateToNewReleases) guide. +## 2024-12-10 + +### New Features + +- Assignment of VM and Hybrid VM initiatives to Platform MG. +- Faster deployment thanks to both template and ARM engine improvements. + +### Bug Fixes + +- Resolved [[#400](https://github.com/Azure/azure-monitor-baseline-alerts/pull/400)]: Fix for log alerts policy remediation not working when ALZMonitorDisableTagName parameter value contains dashes. + +### Documentation Updates + +- Improved navigation for the ALZ pattern content by restructuring the menu. +- Improved spelling and grammar for the ALZ pattern content. +- Updated the ***Introduction to deploying the AMBA-ALZ Pattern*** page with the new Platform Management Group assignment for both **VM initiative** and **Hybrid VM initiative**. +- Updated broken links. + +### Tools + +- **Automation:** + - Created workflow to assign issues to the relevant owner based on labels. + - Added GitHub action to validate yml schemas. + ## 2024-11-01 ### New Features @@ -178,4 +202,3 @@ To update your deployment with the latest release, refer to the [Update to new r - Added guidance for Server Health alert rules - [Deploy only Service Health Alerts](../../HowTo/deploy/Deploy-only-Service-Health-Alerts). - New documentation on updating to a new release - [Update to new releases](../../HowTo/UpdateToNewReleases). - FAQ Updates - [Frequently Asked Questions](../../Resources/FAQ). - From fa3be941f8cf3e0276085208a01cdd116a3ad9b8 Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Mon, 9 Dec 2024 21:58:45 +0100 Subject: [PATCH 08/21] Added release update page and fixed the order of page --- .../alz/HowTo/Bring-your-own-Managed-Identity.md | 2 +- .../alz/HowTo/Bring-your-own-Notifications.md | 2 +- .../patterns/alz/HowTo/Cleaning-up-a-Deployment.md | 2 +- docs/content/patterns/alz/HowTo/Telemetry.md | 2 +- .../patterns/alz/HowTo/Threshold-Override.md | 2 +- .../Update_to_release_2024_12_10.md | 13 +++++++++++++ .../alz/HowTo/UpdateToNewReleases/_index.md | 2 +- 7 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 docs/content/patterns/alz/HowTo/UpdateToNewReleases/Update_to_release_2024_12_10.md diff --git a/docs/content/patterns/alz/HowTo/Bring-your-own-Managed-Identity.md b/docs/content/patterns/alz/HowTo/Bring-your-own-Managed-Identity.md index 7bf8df8a0..1b4e7a2a0 100644 --- a/docs/content/patterns/alz/HowTo/Bring-your-own-Managed-Identity.md +++ b/docs/content/patterns/alz/HowTo/Bring-your-own-Managed-Identity.md @@ -1,7 +1,7 @@ --- title: Bring Your Own User Assigned Managed Identity geekdocCollapseSection: true -weight: 95 +weight: 80 --- ## Overview diff --git a/docs/content/patterns/alz/HowTo/Bring-your-own-Notifications.md b/docs/content/patterns/alz/HowTo/Bring-your-own-Notifications.md index 477cd72e4..7d779a92b 100644 --- a/docs/content/patterns/alz/HowTo/Bring-your-own-Notifications.md +++ b/docs/content/patterns/alz/HowTo/Bring-your-own-Notifications.md @@ -1,7 +1,7 @@ --- title: Bring Your Own Notifications geekdocCollapseSection: true -weight: 100 +weight: 90 --- ## Overview diff --git a/docs/content/patterns/alz/HowTo/Cleaning-up-a-Deployment.md b/docs/content/patterns/alz/HowTo/Cleaning-up-a-Deployment.md index 2263fd7a9..2478f567d 100644 --- a/docs/content/patterns/alz/HowTo/Cleaning-up-a-Deployment.md +++ b/docs/content/patterns/alz/HowTo/Cleaning-up-a-Deployment.md @@ -1,7 +1,7 @@ --- title: Clean-up AMBA-ALZ Deployment geekdocCollapseSection: true -weight: 70 +weight: 52 --- In some cases, you may need to remove all resources deployed by the AMBA-ALZ solution. The following instructions provide a detailed guide on executing a PowerShell script to delete all deployed resources, including: diff --git a/docs/content/patterns/alz/HowTo/Telemetry.md b/docs/content/patterns/alz/HowTo/Telemetry.md index 344f50102..ff1444ab3 100644 --- a/docs/content/patterns/alz/HowTo/Telemetry.md +++ b/docs/content/patterns/alz/HowTo/Telemetry.md @@ -1,7 +1,7 @@ --- title: Disable telemetry tracking geekdocCollapseSection: true -weight: 90 +weight: 100 --- diff --git a/docs/content/patterns/alz/HowTo/Threshold-Override.md b/docs/content/patterns/alz/HowTo/Threshold-Override.md index e1540c5e9..71258ae23 100644 --- a/docs/content/patterns/alz/HowTo/Threshold-Override.md +++ b/docs/content/patterns/alz/HowTo/Threshold-Override.md @@ -1,7 +1,7 @@ --- title: Override alert thresholds geekdocCollapseSection: true -weight: 85 +weight: 70 --- ## Overview diff --git a/docs/content/patterns/alz/HowTo/UpdateToNewReleases/Update_to_release_2024_12_10.md b/docs/content/patterns/alz/HowTo/UpdateToNewReleases/Update_to_release_2024_12_10.md new file mode 100644 index 000000000..0a2676cff --- /dev/null +++ b/docs/content/patterns/alz/HowTo/UpdateToNewReleases/Update_to_release_2024_12_10.md @@ -0,0 +1,13 @@ +--- +title: Updating to release 2024-12-10 +geekdocCollapseSection: true +weight: 95 +--- + +{{< hint type=Info >}} +**_No pre-update or post-update actions_** are required. +{{< /hint >}} + +## Update + +Complete the activities documented in the [Steps to update to the latest release](../#steps-to-update-to-the-latest-release) page. diff --git a/docs/content/patterns/alz/HowTo/UpdateToNewReleases/_index.md b/docs/content/patterns/alz/HowTo/UpdateToNewReleases/_index.md index dbeeb8b1d..fe34aac85 100644 --- a/docs/content/patterns/alz/HowTo/UpdateToNewReleases/_index.md +++ b/docs/content/patterns/alz/HowTo/UpdateToNewReleases/_index.md @@ -1,7 +1,7 @@ --- title: Update to new releases geekdocCollapseSection: true -weight: 71 +weight: 51 --- ## What is included in the latest release From cc2a4ce03ebd20d447931215f618112b1748e750 Mon Sep 17 00:00:00 2001 From: Arjen Huitema Date: Mon, 9 Dec 2024 22:03:00 +0100 Subject: [PATCH 09/21] Add new paramaters in terraform-sync configuration --- .../alz/eslzArm.terraform-sync.param.json | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/patterns/alz/eslzArm.terraform-sync.param.json b/patterns/alz/eslzArm.terraform-sync.param.json index a639b6af1..7a58bf03e 100644 --- a/patterns/alz/eslzArm.terraform-sync.param.json +++ b/patterns/alz/eslzArm.terraform-sync.param.json @@ -177,6 +177,12 @@ "ERCIRQoSDropBitsinPerSecAlertState": { "value": "true" }, + "ERCIRQoSDropBitsinPerSecFailingPeriods": { + "value": "2" + }, + "ERCIRQoSDropBitsinPerSecEvaluationPeriods": { + "value": "2" + }, "ERCIRQoSDropBitsoutPerSecAlertSeverity": { "value": "2" }, @@ -192,6 +198,12 @@ "ERCIRQoSDropBitsoutPerSecAlertState": { "value": "true" }, + "ERCIRQoSDropBitsoutPerSecFailingPeriods": { + "value": "2" + }, + "ERCIRQoSDropBitsoutPerSecEvaluationPeriods": { + "value": "2" + }, "VPNGwBGPPeerStatusAlertSeverity": { "value": "3" }, @@ -333,6 +345,12 @@ "VPNGWTunnelEgressPacketDropCountAlertState": { "value": "true" }, + "VPNGWTunnelEgressPacketDropCountFailingPeriods": { + "value": "2" + }, + "VPNGWTunnelEgressPacketDropCountEvaluationPeriods": { + "value": "2" + }, "VPNGWTunnelEgressPacketDropMismatchAlertSeverity": { "value": "3" }, @@ -348,6 +366,12 @@ "VPNGWTunnelEgressPacketDropMismatchAlertState": { "value": "true" }, + "VPNGWTunnelEgressPacketDropMismatchFailingPeriods": { + "value": "2" + }, + "VPNGWTunnelEgressPacketDropMismatchEvaluationPeriods": { + "value": "2" + }, "VPNGWIngressAlertSeverity": { "value": "0" }, @@ -384,6 +408,12 @@ "VPNGWTunnelIngressPacketDropCountAlertState": { "value": "true" }, + "VPNGWTunnelIngressPacketDropCountFailingPeriods": { + "value": "2" + }, + "VPNGWTunnelIngressPacketDropCountEvaluationPeriods": { + "value": "2" + }, "VPNGWTunnelIngressPacketDropMismatchAlertSeverity": { "value": "3" }, @@ -399,6 +429,12 @@ "VPNGWTunnelIngressPacketDropMismatchAlertState": { "value": "true" }, + "VPNGWTunnelIngressPacketDropMismatchFailingPeriods": { + "value": "2" + }, + "VPNGWTunnelIngressPacketDropMismatchEvaluationPeriods": { + "value": "2" + }, "PDNSZCapacityUtilAlertSeverity": { "value": "2" }, @@ -630,6 +666,12 @@ "VnetGwTunnelEgressPacketDropCountAlertState": { "value": "true" }, + "VnetGwTunnelEgressPacketDropCountFailingPeriods": { + "value": "4" + }, + "VnetGwTunnelEgressPacketDropCountEvaluationPeriods": { + "value": "4" + }, "VnetGwTunnelEgressPacketDropMismatchAlertSeverity": { "value": "3" }, @@ -645,6 +687,12 @@ "VnetGwTunnelEgressPacketDropMismatchAlertState": { "value": "true" }, + "VnetGwTunnelEgressPacketDropMismatchFailingPeriods": { + "value": "4" + }, + "VnetGwTunnelEgressPacketDropMismatchEvaluationPeriods": { + "value": "4" + }, "VnetGwExpressRouteBitsPerSecondAlertSeverity": { "value": "0" }, @@ -678,6 +726,12 @@ "VnetGwTunnelIngressPacketDropMismatchAlertState": { "value": "true" }, + "VnetGwTunnelIngressPacketDropMismatchFailingPeriods": { + "value": "4" + }, + "VnetGwTunnelIngressPacketDropMismatchEvaluationPeriods": { + "value": "4" + }, "VnetGwTunnelIngressPacketDropCountAlertSeverity": { "value": "3" }, @@ -693,6 +747,12 @@ "VnetGwTunnelIngressPacketDropCountAlertState": { "value": "true" }, + "VnetGwTunnelIngressPacketDropCountFailingPeriods": { + "value": "4" + }, + "VnetGwTunnelIngressPacketDropCountEvaluationPeriods": { + "value": "4" + }, "ERCIRBgpAvailabilityAlertSeverity": { "value": "0" }, @@ -1592,6 +1652,9 @@ "RVBackupHealthMonitorPolicyEffect": { "value": "modify" }, + "RVASRHealthMonitorPolicyEffect": { + "value": "modify" + }, "StorageAccountAvailabilityAlertSeverity": { "value": "1" }, @@ -1894,6 +1957,12 @@ "AGWApplicationGatewayTotalTimeAlertState": { "value": "true" }, + "AGWApplicationGatewayTotalTimeFailingPeriods": { + "value": "2" + }, + "AGWApplicationGatewayTotalTimeEvaluationPeriods": { + "value": "2" + }, "AGWBackendLastByteResponseTimeAlertSeverity": { "value": "2" }, @@ -1912,6 +1981,12 @@ "AGWBackendLastByteResponseTimeAlertState": { "value": "true" }, + "AGWBackendLastByteResponseTimeFailingPeriods": { + "value": "2" + }, + "AGWBackendLastByteResponseTimeEvaluationPeriods": { + "value": "2" + }, "AGWCapacityUnitsAlertSeverity": { "value": "2" }, @@ -1975,6 +2050,12 @@ "AGWFailedRequestsAlertState": { "value": "true" }, + "AGWFailedRequestsFailingPeriods": { + "value": "2" + }, + "AGWFailedRequestsEvaluationPeriods": { + "value": "2" + }, "AGWResponseStatusAlertSeverity": { "value": "2" }, @@ -1993,6 +2074,12 @@ "AGWResponseStatusAlertState": { "value": "true" }, + "AGWResponseStatusFailingPeriods": { + "value": "2" + }, + "AGWResponseStatusEvaluationPeriods": { + "value": "2" + }, "AGWUnhealthyHostCountAlertSeverity": { "value": "2" }, @@ -2113,6 +2200,12 @@ "CDNPOriginLatencyAlertState": { "value": "true" }, + "CDNPOriginLatencyFailingPeriods": { + "value": "2" + }, + "CDNPOriginLatencyEvaluationPeriods": { + "value": "2" + }, "CDNPPercentage4XXAlertSeverity": { "value": "2" }, @@ -2128,6 +2221,12 @@ "CDNPPercentage4XXAlertState": { "value": "true" }, + "CDNPPercentage4XXFailingPeriods": { + "value": "2" + }, + "CDNPPercentage4XXEvaluationPeriods": { + "value": "2" + }, "CDNPPercentage5XXAlertSeverity": { "value": "2" }, @@ -2143,6 +2242,12 @@ "CDNPPercentage5XXAlertState": { "value": "true" }, + "CDNPPercentage5XXFailingPeriods": { + "value": "2" + }, + "CDNPPercentage5XXEvaluationPeriods": { + "value": "2" + }, "FDBackendHealthAlertSeverity": { "value": "2" }, @@ -2195,6 +2300,9 @@ "value": { "RVBackupHealthMonitorPolicyEffect": { "value": "modify" + }, + "RVASRHealthMonitorPolicyEffect": { + "value": "modify" } } }, @@ -2743,6 +2851,12 @@ "WSFDiskQueueLengthAlertState": { "value": "true" }, + "WSFDiskQueueLengthFailingPeriods": { + "value": "2" + }, + "WSFDiskQueueLengthEvaluationPeriods": { + "value": "2" + }, "WSFHttpQueueLengthAlertSeverity": { "value": "2" }, @@ -2757,6 +2871,12 @@ }, "WSFHttpQueueLengthAlertState": { "value": "true" + }, + "WSFHttpQueueLengthFailingPeriods": { + "value": "2" + }, + "WSFHttpQueueLengthEvaluationPeriods": { + "value": "2" } } } From adb12243e38dfa66bf3bafe7266a7204883101e2 Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Mon, 9 Dec 2024 22:58:04 +0100 Subject: [PATCH 10/21] Updated pointers to new release --- .../patterns/alz/HowTo/deploy/Customize-Policy-Assignment.md | 2 +- .../alz/HowTo/deploy/Deploy-only-Service-Health-Alerts.md | 4 ++-- .../patterns/alz/HowTo/deploy/Deploy-with-Azure-CLI.md | 2 +- .../patterns/alz/HowTo/deploy/Deploy-with-Azure-PowerShell.md | 2 +- .../patterns/alz/HowTo/deploy/parameterConfiguration.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/content/patterns/alz/HowTo/deploy/Customize-Policy-Assignment.md b/docs/content/patterns/alz/HowTo/deploy/Customize-Policy-Assignment.md index 386394ffb..38c45ed00 100644 --- a/docs/content/patterns/alz/HowTo/deploy/Customize-Policy-Assignment.md +++ b/docs/content/patterns/alz/HowTo/deploy/Customize-Policy-Assignment.md @@ -16,7 +16,7 @@ To adjust alert thresholds for one or more metric alerts, specify the relevant p Two versions of the parameter file are available: -1. [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/2024-11-01/patterns/alz/alzArm.param.json) aligned with the latest release. +1. [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/2024-12-10/patterns/alz/alzArm.param.json) aligned with the latest release. 2. [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/main/patterns/alz/alzArm.param.json) aligned with the main branch. ### Applying Changes to the Parameter File diff --git a/docs/content/patterns/alz/HowTo/deploy/Deploy-only-Service-Health-Alerts.md b/docs/content/patterns/alz/HowTo/deploy/Deploy-only-Service-Health-Alerts.md index a6541e8ba..73b8f267d 100644 --- a/docs/content/patterns/alz/HowTo/deploy/Deploy-only-Service-Health-Alerts.md +++ b/docs/content/patterns/alz/HowTo/deploy/Deploy-only-Service-Health-Alerts.md @@ -23,7 +23,7 @@ In this example we will deploy the Service Health Policy Set Definition via Azur To start, you can either download a copy of the parameter file according the version of AMBA-ALZ you are going to deploy or clone/fork the repository. -- [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/2024-11-01/patterns/alz/alzArm.param.json) aligned to the latest release +- [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/2024-12-10/patterns/alz/alzArm.param.json) aligned to the latest release - [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/main/patterns/alz/alzArm.param.json) aligned to the main branch The following changes apply to all scenarios, whether you are aligned or unaligned with ALZ or have a single management group. @@ -253,7 +253,7 @@ The ```location``` variable refers to the deployment location. Deploying to mult Using your preferred command-line tool (Windows PowerShell, Cmd, Bash or other Unix shells), if you closed your previous session, navigate again to the root of the cloned repo and log on to Azure with an account with at least Resource Policy Contributor access at the root of the management group hierarchy where you will be creating the policies and Policy Set Definitions. ```bash -az deployment mg create --template-uri https://raw.githubusercontent.com/Azure/azure-monitor-baseline-alerts/2024-11-01/patterns/alz/alzArm.json --name "amba-GeneralDeployment" --location $location --management-group-id $pseudoRootManagementGroup --parameters .\patterns\alz\alzArm.param.json +az deployment mg create --template-uri https://raw.githubusercontent.com/Azure/azure-monitor-baseline-alerts/2024-12-10/patterns/alz/alzArm.json --name "amba-GeneralDeployment" --location $location --management-group-id $pseudoRootManagementGroup --parameters .\patterns\alz\alzArm.param.json ```
diff --git a/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-CLI.md b/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-CLI.md index 115945822..a4d48ddb1 100644 --- a/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-CLI.md +++ b/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-CLI.md @@ -44,7 +44,7 @@ If you have customized the policies as described in [How to modify individual po {{< /hint >}} ```bash -az deployment mg create --name "amba-GeneralDeployment" --template-uri https://raw.githubusercontent.com/Azure/azure-monitor-baseline-alerts/2024-11-01/patterns/alz/alzArm.json --location $location --management-group-id $pseudoRootManagementGroup --parameters ".\patterns\alz\alzArm.param.json" +az deployment mg create --name "amba-GeneralDeployment" --template-uri https://raw.githubusercontent.com/Azure/azure-monitor-baseline-alerts/2024-12-10/patterns/alz/alzArm.json --location $location --management-group-id $pseudoRootManagementGroup --parameters ".\patterns\alz\alzArm.param.json" ``` ## Next Steps diff --git a/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-PowerShell.md b/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-PowerShell.md index a5ffcf1c9..13b3879af 100644 --- a/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-PowerShell.md +++ b/docs/content/patterns/alz/HowTo/deploy/Deploy-with-Azure-PowerShell.md @@ -51,7 +51,7 @@ New-AzManagementGroupDeployment -Name "amba-GeneralDeployment" -ManagementGroupI {{< /hint >}} ```powershell -New-AzManagementGroupDeployment -Name "amba-GeneralDeployment" -ManagementGroupId $pseudoRootManagementGroup -Location $location -TemplateUri "https://raw.githubusercontent.com/Azure/azure-monitor-baseline-alerts/2024-11-01/patterns/alz/alzArm.json" -TemplateParameterFile ".\patterns\alz\alzArm.param.json" +New-AzManagementGroupDeployment -Name "amba-GeneralDeployment" -ManagementGroupId $pseudoRootManagementGroup -Location $location -TemplateUri "https://raw.githubusercontent.com/Azure/azure-monitor-baseline-alerts/2024-12-10/patterns/alz/alzArm.json" -TemplateParameterFile ".\patterns\alz\alzArm.param.json" ``` ## Next Steps diff --git a/docs/content/patterns/alz/HowTo/deploy/parameterConfiguration.md b/docs/content/patterns/alz/HowTo/deploy/parameterConfiguration.md index 1f339e82a..44a90b408 100644 --- a/docs/content/patterns/alz/HowTo/deploy/parameterConfiguration.md +++ b/docs/content/patterns/alz/HowTo/deploy/parameterConfiguration.md @@ -11,7 +11,7 @@ Updating from the _**preview**_ version is not supported. If you deployed the _* To begin, either download the appropriate parameter file for the version of AMBA-ALZ you are deploying or clone/fork the repository. -- [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/2024-11-01/patterns/alz/alzArm.param.json) for the latest release. +- [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/2024-12-10/patterns/alz/alzArm.param.json) for the latest release. - [alzArm.param.json](https://github.com/azure/azure-monitor-baseline-alerts/blob/main/patterns/alz/alzArm.param.json) for the main branch. The following instructions apply universally, regardless of your alignment with ALZ or if you have a single management group. From 4423d8b369e7dfbd5937407b564db8f8a7b3a5c2 Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Fri, 13 Dec 2024 19:05:35 +0100 Subject: [PATCH 11/21] Update alz-portal.json Fixing bug from Steve DiStefano --- patterns/alz/alz-portal.json | 68 ++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index 175b2d250..cdc227642 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -32,7 +32,7 @@ "method": "POST", "path": "providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01", "body": { - "query": "resourcecontainers| where type == 'microsoft.resources/subscriptions'| project label=tostring(name) , description=id, value=subscriptionId | order by label asc" + "query": "[format('resourcecontainers | where type == \"microsoft.resources/subscriptions\" | where properties.managementGroupAncestorsChain contains \"{0}\" | project label=tostring(name) , description=id, value=subscriptionId | order by label asc', steps('basics').resourceScope.managementGroup.name)]" } } }, @@ -142,7 +142,7 @@ "visible": "[equals(steps('basics').bringYourOwnUserAssignedManagedIdentity,'No')]", "multiselect": false, "defaultValue": "", - "filter": false, + "filter": true, "toolTip": "Provide the subscription id where the user assigned managed identity will be created.", "constraints": { "allowedValues": "[steps('basics').getmanagementSubscriptionId.data]" @@ -238,40 +238,48 @@ "style": "Info" } }, + { + "name": "ManagementGroupAPI", + "type": "Microsoft.Solutions.ArmApiControl", + "request": { + "method": "GET", + "path": "providers/Microsoft.Management/managementGroups?api-version=2020-05-01" + } + }, + { + "name": "DescendantManagementGroupAPI", + "type": "Microsoft.Solutions.ArmApiControl", + "request": { + "method": "GET", + "path": "[format('providers/Microsoft.Management/managementGroups/{0}/descendants?api-version=2020-05-01',steps('basics').resourceScope.managementGroup.name)]" + } + }, { "name": "enterpriseScaleCompanyPrefix", "type": "Microsoft.Common.DropDown", "label": "Enterprise Scale Company Management Group", "multiselect": false, - "defaultValue": "[steps('basics').resourceScope.managementGroup.name]", + "defaultValue": "[steps('basics').resourceScope.managementGroup.displayName]", "filter": false, "defaultDescription": "Enterprise Scale Company Management Group", "toolTip": "Management group where you wish to deploy the policies and the initiatives. This is usually the so called “pseudo root management group”, this would be the so called “Intermediate Root Management Group” (directly beneath the “Tenant Root Group”).", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "allowedValues": "[filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"value\":\"', item.name, '\"}'))), (item) => equals(item.label, steps('basics').resourceScope.managementGroup.displayName))]", "required": true }, "visible": true }, - { - "name": "ManagementGroupAPI", - "type": "Microsoft.Solutions.ArmApiControl", - "request": { - "method": "GET", - "path": "providers/Microsoft.Management/managementGroups?api-version=2020-05-01" - } - }, { "name": "platformManagementGroup", "type": "Microsoft.Common.DropDown", "label": "Platform Management Group", "multiselect": false, - "defaultValue": "", - "filter": false, + "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", + "filter": true, "defaultDescription": "Platform Management Group", "toolTip": "Provide the name of the Management Group that will be used to host the platform resources.", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", "required": true }, "visible": true @@ -302,11 +310,11 @@ "type": "Microsoft.Common.DropDown", "label": "Identity Management Group", "multiselect": false, - "defaultValue": "", - "filter": false, + "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", + "filter": true, "toolTip": "Provide the name of the Management Group that will be used to host the identity resources.", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", "required": true }, "visible": "[equals(steps('Configuration').enableAMBAIdentity,'Yes')]" @@ -337,14 +345,14 @@ "type": "Microsoft.Common.DropDown", "label": "Management Management Group", "multiselect": false, - "defaultValue": "", - "filter": false, + "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", + "filter": true, "toolTip": "Provide the name of the Management Group that will be used to host the management resources.", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", "required": true }, - "visible": "[equals(steps('Configuration').enableAMBAManagement,'Yes')]" + "visible": "[or(equals(steps('Configuration').enableAMBAManagement,'Yes'), equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" }, { "name": "enableAMBAConnectivity", @@ -372,11 +380,11 @@ "type": "Microsoft.Common.DropDown", "label": "Connectivity Management Group", "multiselect": false, - "defaultValue": "", - "filter": false, + "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", + "filter": true, "toolTip": "Provide the name of the Management Group that will be used to host the connectivity resources.", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", "required": true }, "visible": "[equals(steps('Configuration').enableAMBAConnectivity,'Yes')]" @@ -528,7 +536,7 @@ { "name": "enableAMBAVM", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA VM", + "label": "Enable AMBA Azure VM", "subLabel": "", "defaultValue": "Yes", "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines.", @@ -578,11 +586,11 @@ "type": "Microsoft.Common.DropDown", "label": "Landing Zone Management Group", "multiselect": false, - "defaultValue": "", - "filter": false, + "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", + "filter": true, "toolTip": "Provide the name of the Management Group that will be used to host the landing zone resources.", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", "required": true }, "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAKeyManagement,'Yes'), equals(steps('Configuration').enableAMBALoadBalancing,'Yes'), equals(steps('Configuration').enableAMBANetworkChanges,'Yes'), equals(steps('Configuration').enableAMBARecoveryServices,'Yes'), equals(steps('Configuration').enableAMBAStorage,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'), equals(steps('Configuration').enableAMBAWeb,'Yes'))]" @@ -948,7 +956,7 @@ "enterpriseScaleCompanyPrefix": "[steps('Configuration').enterpriseScaleCompanyPrefix]", "platformManagementGroup": "[steps('Configuration').platformManagementGroup]", "IdentityManagementGroup": "[if(equals(steps('Configuration').enableAMBAIdentity,'No'), 'contoso-identity', steps('Configuration').IdentityManagementGroup)]", - "managementManagementGroup": "[if(equals(steps('Configuration').enableAMBAManagement, 'No'), 'contoso-management', steps('Configuration').managementManagementGroup)]", + "managementManagementGroup": "[if(empty(steps('Configuration').managementManagementGroup), 'contoso-management', steps('Configuration').managementManagementGroup)]", "connectivityManagementGroup": "[if(equals(steps('Configuration').enableAMBAConnectivity, 'No'), 'contoso-connectivity', steps('Configuration').connectivityManagementGroup)]", "LandingZoneManagementGroup": "[if(empty(steps('Configuration').LandingZoneManagementGroup), 'contoso-landingzones', steps('Configuration').LandingZoneManagementGroup)]", "BYOActionGroup": "[steps('Notification').BYOActionGroup]", From 9161776c2f932b3c15f4c7f562dd7883f5debd9f Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Mon, 16 Dec 2024 10:36:08 +0100 Subject: [PATCH 12/21] Update alz-portal.json Fixing logic for assigning value to MG --- patterns/alz/alz-portal.json | 66 ++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index cdc227642..e7b44b8b1 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -32,7 +32,7 @@ "method": "POST", "path": "providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01", "body": { - "query": "[format('resourcecontainers | where type == \"microsoft.resources/subscriptions\" | where properties.managementGroupAncestorsChain contains \"{0}\" | project label=tostring(name) , description=id, value=subscriptionId | order by label asc', steps('basics').resourceScope.managementGroup.name)]" + "query": "resourcecontainers| where type == 'microsoft.resources/subscriptions'| project label=tostring(name) , description=id, value=subscriptionId | order by label asc" } } }, @@ -142,7 +142,7 @@ "visible": "[equals(steps('basics').bringYourOwnUserAssignedManagedIdentity,'No')]", "multiselect": false, "defaultValue": "", - "filter": true, + "filter": false, "toolTip": "Provide the subscription id where the user assigned managed identity will be created.", "constraints": { "allowedValues": "[steps('basics').getmanagementSubscriptionId.data]" @@ -238,48 +238,40 @@ "style": "Info" } }, - { - "name": "ManagementGroupAPI", - "type": "Microsoft.Solutions.ArmApiControl", - "request": { - "method": "GET", - "path": "providers/Microsoft.Management/managementGroups?api-version=2020-05-01" - } - }, - { - "name": "DescendantManagementGroupAPI", - "type": "Microsoft.Solutions.ArmApiControl", - "request": { - "method": "GET", - "path": "[format('providers/Microsoft.Management/managementGroups/{0}/descendants?api-version=2020-05-01',steps('basics').resourceScope.managementGroup.name)]" - } - }, { "name": "enterpriseScaleCompanyPrefix", "type": "Microsoft.Common.DropDown", "label": "Enterprise Scale Company Management Group", "multiselect": false, - "defaultValue": "[steps('basics').resourceScope.managementGroup.displayName]", + "defaultValue": "[steps('basics').resourceScope.managementGroup.name]", "filter": false, "defaultDescription": "Enterprise Scale Company Management Group", "toolTip": "Management group where you wish to deploy the policies and the initiatives. This is usually the so called “pseudo root management group”, this would be the so called “Intermediate Root Management Group” (directly beneath the “Tenant Root Group”).", "constraints": { - "allowedValues": "[filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"value\":\"', item.name, '\"}'))), (item) => equals(item.label, steps('basics').resourceScope.managementGroup.displayName))]", + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, "visible": true }, + { + "name": "ManagementGroupAPI", + "type": "Microsoft.Solutions.ArmApiControl", + "request": { + "method": "GET", + "path": "providers/Microsoft.Management/managementGroups?api-version=2020-05-01" + } + }, { "name": "platformManagementGroup", "type": "Microsoft.Common.DropDown", "label": "Platform Management Group", "multiselect": false, - "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", - "filter": true, + "defaultValue": "", + "filter": false, "defaultDescription": "Platform Management Group", "toolTip": "Provide the name of the Management Group that will be used to host the platform resources.", "constraints": { - "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, "visible": true @@ -310,11 +302,11 @@ "type": "Microsoft.Common.DropDown", "label": "Identity Management Group", "multiselect": false, - "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", - "filter": true, + "defaultValue": "", + "filter": false, "toolTip": "Provide the name of the Management Group that will be used to host the identity resources.", "constraints": { - "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, "visible": "[equals(steps('Configuration').enableAMBAIdentity,'Yes')]" @@ -345,11 +337,11 @@ "type": "Microsoft.Common.DropDown", "label": "Management Management Group", "multiselect": false, - "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", - "filter": true, + "defaultValue": "", + "filter": false, "toolTip": "Provide the name of the Management Group that will be used to host the management resources.", "constraints": { - "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, "visible": "[or(equals(steps('Configuration').enableAMBAManagement,'Yes'), equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" @@ -380,11 +372,11 @@ "type": "Microsoft.Common.DropDown", "label": "Connectivity Management Group", "multiselect": false, - "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", - "filter": true, + "defaultValue": "", + "filter": false, "toolTip": "Provide the name of the Management Group that will be used to host the connectivity resources.", "constraints": { - "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, "visible": "[equals(steps('Configuration').enableAMBAConnectivity,'Yes')]" @@ -536,7 +528,7 @@ { "name": "enableAMBAVM", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Azure VM", + "label": "Enable AMBA VM", "subLabel": "", "defaultValue": "Yes", "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines.", @@ -586,11 +578,11 @@ "type": "Microsoft.Common.DropDown", "label": "Landing Zone Management Group", "multiselect": false, - "defaultValue": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), steps('basics').resourceScope.managementGroup.name, '')]", - "filter": true, + "defaultValue": "", + "filter": false, "toolTip": "Provide the name of the Management Group that will be used to host the landing zone resources.", "constraints": { - "allowedValues": "[if(empty(filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions')))), filter(map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => contains(item.label, steps('basics').resourceScope.managementGroup.displayName)), filter(map(steps('Configuration').DescendantManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.properties.displayName, '\",\"description\":\"', item.type, '\",\"value\":\"', item.name, '\"}'))), (item) => not(contains(item.description, '/subscriptions'))))]", + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAKeyManagement,'Yes'), equals(steps('Configuration').enableAMBALoadBalancing,'Yes'), equals(steps('Configuration').enableAMBANetworkChanges,'Yes'), equals(steps('Configuration').enableAMBARecoveryServices,'Yes'), equals(steps('Configuration').enableAMBAStorage,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'), equals(steps('Configuration').enableAMBAWeb,'Yes'))]" @@ -956,7 +948,7 @@ "enterpriseScaleCompanyPrefix": "[steps('Configuration').enterpriseScaleCompanyPrefix]", "platformManagementGroup": "[steps('Configuration').platformManagementGroup]", "IdentityManagementGroup": "[if(equals(steps('Configuration').enableAMBAIdentity,'No'), 'contoso-identity', steps('Configuration').IdentityManagementGroup)]", - "managementManagementGroup": "[if(empty(steps('Configuration').managementManagementGroup), 'contoso-management', steps('Configuration').managementManagementGroup)]", + "managementManagementGroup": "[if(and(equals(steps('Configuration').enableAMBAManagement,'No'), equals(steps('Configuration').enableAMBAHybridVM,'No'), equals(steps('Configuration').enableAMBAVM,'No')), 'contoso-management', steps('Configuration').managementManagementGroup)]", "connectivityManagementGroup": "[if(equals(steps('Configuration').enableAMBAConnectivity, 'No'), 'contoso-connectivity', steps('Configuration').connectivityManagementGroup)]", "LandingZoneManagementGroup": "[if(empty(steps('Configuration').LandingZoneManagementGroup), 'contoso-landingzones', steps('Configuration').LandingZoneManagementGroup)]", "BYOActionGroup": "[steps('Notification').BYOActionGroup]", From 72a6f421ba0fc140e50c5e38bb99ba9e089dfb8f Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Mon, 16 Dec 2024 11:26:29 +0100 Subject: [PATCH 13/21] Update alz-portal.json --- patterns/alz/alz-portal.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index e7b44b8b1..a1eb8f12b 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -145,7 +145,8 @@ "filter": false, "toolTip": "Provide the subscription id where the user assigned managed identity will be created.", "constraints": { - "allowedValues": "[steps('basics').getmanagementSubscriptionId.data]" + "allowedValues": "[steps('basics').getmanagementSubscriptionId.data]", + "required": "[if(equals(steps('basics').bringYourOwnUserAssignedManagedIdentity,'No'), true, false)]" } }, { From 4c81de4cb156deca8d3edc80a59d560073e0c7c2 Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Mon, 16 Dec 2024 13:42:35 +0100 Subject: [PATCH 14/21] Update alz-portal.json Reordering to put MG names all together --- patterns/alz/alz-portal.json | 204 +++++++++++++++++------------------ 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index a1eb8f12b..faa618f61 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -263,26 +263,32 @@ } }, { - "name": "platformManagementGroup", + "name": "enableAMBAServiceHealth", "type": "Microsoft.Common.DropDown", - "label": "Platform Management Group", - "multiselect": false, - "defaultValue": "", - "filter": false, - "defaultDescription": "Platform Management Group", - "toolTip": "Provide the name of the Management Group that will be used to host the platform resources.", + "label": "Enable AMBA Service Health", + "defaultValue": "Yes", + "toolTip": "Assign Service health initiative", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", - "required": true + "required": true, + "allowedValues": [ + { + "label": "Yes", + "value": "Yes" + }, + { + "label": "No", + "value": "No" + } + ] }, "visible": true }, { - "name": "enableAMBAIdentity", + "name": "enableAMBAConnectivity", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Identity", + "label": "Enable AMBA Connectivity", "defaultValue": "Yes", - "toolTip": "If 'Yes' is selected the Deploy Azure Monitor Baseline Alerts for Identity policy initiative is assigned to the Identity management group. This will ensure that relevant new resources created within that scope are configured with appropriate baseline alerts. For more details on what is included in the initiative please refer to https://aka.ms/amba/alz/wiki under Azure Policy Initiatives and Alert Details.", + "toolTip": "If 'Yes' is selected the Deploy Azure Monitor Baseline Alerts for Connectivity policy initiative is assigned to the Connectivity management group. This will ensure that relevant new resources created within that scope are configured with appropriate baseline alerts. For more details on what is included in the initiative please refer to https://aka.ms/amba/alz/wiki under Azure Policy Initiatives and Alert Details.", "constraints": { "required": true, "allowedValues": [ @@ -299,18 +305,25 @@ "visible": true }, { - "name": "IdentityManagementGroup", + "name": "enableAMBAIdentity", "type": "Microsoft.Common.DropDown", - "label": "Identity Management Group", - "multiselect": false, - "defaultValue": "", - "filter": false, - "toolTip": "Provide the name of the Management Group that will be used to host the identity resources.", + "label": "Enable AMBA Identity", + "defaultValue": "Yes", + "toolTip": "If 'Yes' is selected the Deploy Azure Monitor Baseline Alerts for Identity policy initiative is assigned to the Identity management group. This will ensure that relevant new resources created within that scope are configured with appropriate baseline alerts. For more details on what is included in the initiative please refer to https://aka.ms/amba/alz/wiki under Azure Policy Initiatives and Alert Details.", "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", - "required": true + "required": true, + "allowedValues": [ + { + "label": "Yes", + "value": "Yes" + }, + { + "label": "No", + "value": "No" + } + ] }, - "visible": "[equals(steps('Configuration').enableAMBAIdentity,'Yes')]" + "visible": true }, { "name": "enableAMBAManagement", @@ -334,25 +347,12 @@ "visible": true }, { - "name": "managementManagementGroup", - "type": "Microsoft.Common.DropDown", - "label": "Management Management Group", - "multiselect": false, - "defaultValue": "", - "filter": false, - "toolTip": "Provide the name of the Management Group that will be used to host the management resources.", - "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", - "required": true - }, - "visible": "[or(equals(steps('Configuration').enableAMBAManagement,'Yes'), equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" - }, - { - "name": "enableAMBAConnectivity", + "name": "enableAMBAHybridVM", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Connectivity", + "label": "Enable AMBA Hybrid VM", + "subLabel": "", "defaultValue": "Yes", - "toolTip": "If 'Yes' is selected the Deploy Azure Monitor Baseline Alerts for Connectivity policy initiative is assigned to the Connectivity management group. This will ensure that relevant new resources created within that scope are configured with appropriate baseline alerts. For more details on what is included in the initiative please refer to https://aka.ms/amba/alz/wiki under Azure Policy Initiatives and Alert Details.", + "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Arc-enabled Servers", "constraints": { "required": true, "allowedValues": [ @@ -364,31 +364,19 @@ "label": "No", "value": "No" } - ] + ], + "validations": [] }, + "infoMessages": [], "visible": true }, { - "name": "connectivityManagementGroup", - "type": "Microsoft.Common.DropDown", - "label": "Connectivity Management Group", - "multiselect": false, - "defaultValue": "", - "filter": false, - "toolTip": "Provide the name of the Management Group that will be used to host the connectivity resources.", - "constraints": { - "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", - "required": true - }, - "visible": "[equals(steps('Configuration').enableAMBAConnectivity,'Yes')]" - }, - { - "name": "enableAMBAHybridVM", + "name": "enableAMBAVM", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Hybrid VM", + "label": "Enable AMBA Azurure VM", "subLabel": "", "defaultValue": "Yes", - "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Arc-enabled Servers", + "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines.", "constraints": { "required": true, "allowedValues": [ @@ -527,12 +515,12 @@ "visible": true }, { - "name": "enableAMBAVM", + "name": "enableAMBAWeb", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA VM", + "label": "Enable AMBA Web", "subLabel": "", "defaultValue": "Yes", - "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines.", + "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Web Services such as App Services.", "constraints": { "required": true, "allowedValues": [ @@ -551,12 +539,11 @@ "visible": true }, { - "name": "enableAMBAWeb", + "name": "enableAMBANotificationAssets", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Web", - "subLabel": "", + "label": "Enable AMBA Notification Assets", "defaultValue": "Yes", - "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Web Services such as App Services.", + "toolTip": "Assign Action assets initiative", "constraints": { "required": true, "allowedValues": [ @@ -568,67 +555,80 @@ "label": "No", "value": "No" } - ], - "validations": [] + ] }, - "infoMessages": [], "visible": true }, { - "name": "LandingZoneManagementGroup", + "name": "platformManagementGroup", "type": "Microsoft.Common.DropDown", - "label": "Landing Zone Management Group", + "label": "Platform Management Group", "multiselect": false, "defaultValue": "", "filter": false, - "toolTip": "Provide the name of the Management Group that will be used to host the landing zone resources.", + "defaultDescription": "Platform Management Group", + "toolTip": "Provide the name of the Management Group that will be used to host the platform resources.", "constraints": { "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, - "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAKeyManagement,'Yes'), equals(steps('Configuration').enableAMBALoadBalancing,'Yes'), equals(steps('Configuration').enableAMBANetworkChanges,'Yes'), equals(steps('Configuration').enableAMBARecoveryServices,'Yes'), equals(steps('Configuration').enableAMBAStorage,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'), equals(steps('Configuration').enableAMBAWeb,'Yes'))]" + "visible": true }, { - "name": "enableAMBAServiceHealth", + "name": "connectivityManagementGroup", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Service Health", - "defaultValue": "Yes", - "toolTip": "Assign Service health initiative", + "label": "Connectivity Management Group", + "multiselect": false, + "defaultValue": "", + "filter": false, + "toolTip": "Provide the name of the Management Group that will be used to host the connectivity resources.", "constraints": { - "required": true, - "allowedValues": [ - { - "label": "Yes", - "value": "Yes" - }, - { - "label": "No", - "value": "No" - } - ] + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "required": true }, - "visible": true + "visible": "[equals(steps('Configuration').enableAMBAConnectivity,'Yes')]" }, { - "name": "enableAMBANotificationAssets", + "name": "IdentityManagementGroup", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Notification Assets", - "defaultValue": "Yes", - "toolTip": "Assign Action assets initiative", + "label": "Identity Management Group", + "multiselect": false, + "defaultValue": "", + "filter": false, + "toolTip": "Provide the name of the Management Group that will be used to host the identity resources.", "constraints": { - "required": true, - "allowedValues": [ - { - "label": "Yes", - "value": "Yes" - }, - { - "label": "No", - "value": "No" - } - ] + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "required": true }, - "visible": true + "visible": "[equals(steps('Configuration').enableAMBAIdentity,'Yes')]" + }, + { + "name": "managementManagementGroup", + "type": "Microsoft.Common.DropDown", + "label": "Management Management Group", + "multiselect": false, + "defaultValue": "", + "filter": false, + "toolTip": "Provide the name of the Management Group that will be used to host the management resources.", + "constraints": { + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "required": true + }, + "visible": "[or(equals(steps('Configuration').enableAMBAManagement,'Yes'), equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" + }, + { + "name": "LandingZoneManagementGroup", + "type": "Microsoft.Common.DropDown", + "label": "Landing Zone Management Group", + "multiselect": false, + "defaultValue": "", + "filter": false, + "toolTip": "Provide the name of the Management Group that will be used to host the landing zone resources.", + "constraints": { + "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", + "required": true + }, + "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAKeyManagement,'Yes'), equals(steps('Configuration').enableAMBALoadBalancing,'Yes'), equals(steps('Configuration').enableAMBANetworkChanges,'Yes'), equals(steps('Configuration').enableAMBARecoveryServices,'Yes'), equals(steps('Configuration').enableAMBAStorage,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'), equals(steps('Configuration').enableAMBAWeb,'Yes'))]" } ] }, From 902abff4f72314e7f850d02bb4480871cdc9bc6a Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Mon, 16 Dec 2024 13:48:00 +0100 Subject: [PATCH 15/21] Update alz-portal.json Setting platform MG to be visible only if need Hybrid and/or Azure VM --- patterns/alz/alz-portal.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index faa618f61..61f824c61 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -572,7 +572,7 @@ "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, - "visible": true + "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" }, { "name": "connectivityManagementGroup", From 502f3a752b4e2b7b1860206c86b679abf6973196 Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Mon, 16 Dec 2024 13:50:46 +0100 Subject: [PATCH 16/21] Update alz-portal.json Fixed typo --- patterns/alz/alz-portal.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index 61f824c61..01ed543cf 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -373,7 +373,7 @@ { "name": "enableAMBAVM", "type": "Microsoft.Common.DropDown", - "label": "Enable AMBA Azurure VM", + "label": "Enable AMBA Azure VM", "subLabel": "", "defaultValue": "Yes", "toolTip": "This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines.", From d0c034c5d96d8590f17ffa465863785158964165 Mon Sep 17 00:00:00 2001 From: Bruno Gabrielli Date: Mon, 16 Dec 2024 13:54:23 +0100 Subject: [PATCH 17/21] Update alz-portal.json Renaming function for scope clarification --- patterns/alz/alz-portal.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patterns/alz/alz-portal.json b/patterns/alz/alz-portal.json index 01ed543cf..c1ed7287a 100644 --- a/patterns/alz/alz-portal.json +++ b/patterns/alz/alz-portal.json @@ -26,7 +26,7 @@ "instanceDetailsLabel": "AMBA Accelerator" }, { - "name": "getmanagementSubscriptionId", + "name": "getSubscriptionIds", "type": "Microsoft.Solutions.ArmApiControl", "request": { "method": "POST", @@ -145,7 +145,7 @@ "filter": false, "toolTip": "Provide the subscription id where the user assigned managed identity will be created.", "constraints": { - "allowedValues": "[steps('basics').getmanagementSubscriptionId.data]", + "allowedValues": "[steps('basics').getSubscriptionIds.data]", "required": "[if(equals(steps('basics').bringYourOwnUserAssignedManagedIdentity,'No'), true, false)]" } }, @@ -572,7 +572,7 @@ "allowedValues": "[map(steps('Configuration').ManagementGroupAPI.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", "required": true }, - "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" + "visible": "[or(equals(steps('Configuration').enableAMBAHybridVM,'Yes'), equals(steps('Configuration').enableAMBAVM,'Yes'))]" }, { "name": "connectivityManagementGroup", From 5345b900fa4f1d744f96576ef1e117ed868d26dd Mon Sep 17 00:00:00 2001 From: Brunoga-MS Date: Mon, 16 Dec 2024 17:11:12 +0100 Subject: [PATCH 18/21] Updating documentation --- .../deploy/Deploy-via-Azure-Portal-UI.md | 42 +++++++++++------- .../PortalAccelerator/DeploymentSettings.png | Bin 108115 -> 198421 bytes .../media/PortalAccelerator/MGSettings.png | Bin 91417 -> 152688 bytes 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/docs/content/patterns/alz/HowTo/deploy/Deploy-via-Azure-Portal-UI.md b/docs/content/patterns/alz/HowTo/deploy/Deploy-via-Azure-Portal-UI.md index bead24ed9..c643ac64d 100644 --- a/docs/content/patterns/alz/HowTo/deploy/Deploy-via-Azure-Portal-UI.md +++ b/docs/content/patterns/alz/HowTo/deploy/Deploy-via-Azure-Portal-UI.md @@ -27,24 +27,44 @@ weight: 30 ## Management Groups Settings Blade -- Change the values on the Management Groups Settings blade to the following instructions: +![Management Groups Settings Blade](../../../media/PortalAccelerator/MGSettings.png) - ![Management Groups Settings Blade](../../../media/PortalAccelerator/MGSettings.png) +
+ +In the Management Groups Settings blade, change the value of the policy set definitions you would like to enable according to the following instructions: + +- Set the value of _`Enable AMBA Service Health`_ to _`Yes`_. This initiative deploys Azure Monitor Baseline Alerts to monitor Service Health Events such as Service issues, Planned maintenance, Health advisories, Security advisories, and Resource health together with action groups for Service Health alerts notifications. +- Change the value of _`Enable AMBA Connectivity`_ to _`Yes`_. This initiative deploys Azure Monitor Baseline Alerts to monitor Network components such as Azure Firewalls, ExpressRoute, VPN, and Private DNS Zones. +- Change the value of _`Enable AMBA Identity`_ to _`Yes`_. This initiative deploys Azure Monitor Baseline Alerts to monitor Identity services such as Key Vaults, Managed HSMs. +- Change the value of _`Enable AMBA Management`_ to _`Yes`_. This initiative deploys Azure Monitor Baseline Alerts to monitor Management services such as Log Analytics Workspaces, Storage Accounts, Automation Accounts. +- Change the value of _`Enable AMBA Hybrid VM`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Arc-enabled Servers. +- Change the value of _`Enable AMBA Azure VM`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines. +- Change the value of _`Enable AMBA Key Management`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Key Management Services such as Azure Key Vault, and Managed HSM. +- Change the value of _`Enable AMBA Load Balancing`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Load Balancing Services such as Load Balancer, Application Gateway, Traffic Manager, and Azure Front Door. +- Change the value of _`Enable AMBA Network Changes`_ to _`Yes`_ This initiative implements Azure Monitor Baseline Alerts to monitor alterations in Network Routing and Security, such as modifications to Route Tables and the removal of Network Security Groups. +- Change the value of _`Enable AMBA Recovery Services`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Recovery Services such as Azure Backup, and Azure Site Recovery. +- Change the value of _`Enable AMBA Storage`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Storage Services such as Storage accounts. +- Change the value of _`Enable AMBA Web`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Web Services such as App Services. +- Set the value of _`Enable AMBA Notification Assets`_ to _`Yes`_. This configuration will deploy notification assets broad notifications. + +- Change the values on the Management Groups Settings blade according to the following instructions: ### If you are aligned to ALZ - Choose the value of _```Enterprise Scale Company Management Group```_ to the management group ID for Platform. +- Choose the value of _```Platform Management Group```_ to the management group ID for Platform. +- Choose the value of _```Connectivity Management Group```_ to the management group ID for Connectivity. - Choose the value of _```Identity Management Group```_ to the management group ID for Identity. - Choose the value of _```Management Management Group```_ to the management group ID for Management. -- Choose the value of _```Connectivity Management Group```_ to the management group ID for Connectivity. - Choose the value of _```Landing Zone Management Group```_ to the management group ID for Landing Zones. ### If you are unaligned to ALZ - Choose the value of _`Enterprise Scale Company Management Group`_ to the management group ID for Platform. The same management group ID may be repeated. +- Choose the value of _`Platform Management Group`_ to the management group ID for Platform. The same management group ID may be repeated. +- Choose the value of _`Connectivity Management Group`_ to the management group ID for Connectivity. The same management group ID may be repeated. - Choose the value of _`Identity Management Group`_ to the management group ID for Identity. The same management group ID may be repeated. - Choose the value of _`Management Management Group`_ to the management group ID for Management. The same management group ID may be repeated. -- Choose the value of _`Connectivity Management Group`_ to the management group ID for Connectivity. The same management group ID may be repeated. - Choose the value of _`Landing Zone Management Group`_ to the management group ID for Landing Zones. The same management group ID may be repeated. {{< hint type=note >}} @@ -54,26 +74,16 @@ For ease of deployment and maintenance we have kept the same variables. ### If you have a single management group - Choose the value of _`Enterprise Scale Company Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". +- Choose the value of _`Platform Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". +- Choose the value of _`Connectivity Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". - Choose the value of _`Identity Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". - Choose the value of _`Management Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". -- Choose the value of _`Connectivity Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". - Choose the value of _`Landing Zone Management Group`_ to the pseudo root management group ID, also called the "Intermediate Root Management Group". {{< hint type=note >}} For ease of deployment and maintenance we have kept the same variables. {{< /hint >}} -- Set the value of _`Enable AMBA notification assets`_ to _`Yes`_. This configuration will deploy notification assets broad notifications. -- Set the value of _`Enable AMBA Service Health`_ to _`Yes`_. This setting will assign the Service Health Policy Set Definition during deployment and deploy action groups for Service Health alerts notifications. -- Change the value of _`Enable AMBA Hybrid VM`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Arc-enabled Servers. -- Change the value of _`Enable AMBA Key Management`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Key Management Services such as Azure Key Vault, and Managed HSM. -- Change the value of _`Enable AMBA Load Balancing`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Load Balancing Services such as Load Balancer, Application Gateway, Traffic Manager, and Azure Front Door. -- Change the value of _`Enable AMBA Network Changes`_ to _`Yes`_ This initiative implements Azure Monitor Baseline Alerts to monitor alterations in Network Routing and Security, such as modifications to Route Tables and the removal of Network Security Groups. -- Change the value of _`Enable AMBA Recovery Services`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Recovery Services such as Azure Backup, and Azure Site Recovery. -- Change the value of _`Enable AMBA Storage`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Storage Services such as Storage accounts. -- Change the value of _`Enable AMBA VM`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Azure Virtual Machines. -- Change the value of _`Enable AMBA Web`_ to _`Yes`_ This initiative deploys Azure Monitor Baseline Alerts to monitor Web Services such as App Services. - ## Notification Settings Blade ![Notification Settings Blade](../../../media/PortalAccelerator/NotificationSettings.png) diff --git a/docs/content/patterns/alz/media/PortalAccelerator/DeploymentSettings.png b/docs/content/patterns/alz/media/PortalAccelerator/DeploymentSettings.png index c70d4914be56cd98a6318c3a2e678c4a62014ebf..3fe542f1e3293698f6eadeeb547893e402f9bbde 100644 GIT binary patch literal 198421 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%0ApZTpebNE;1oF-%g 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∨+2$Q?8O`xM$kw$ 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
EUk`JMOqLHrXTR8>X~?|w%>%y_ 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 literal 91417 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 lN%9J8 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

|Cq|fY;JOLDakk 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 Date: Tue, 17 Dec 2024 14:20:04 -0500 Subject: [PATCH 19/21] v2.1.8 update - docs, sub opt for LAW, bug fixes --- .../patterns/specialized/avd/Known-Issues.md | 12 ++- .../patterns/specialized/avd/Whats-New.md | 4 + .../patterns/specialized/avd/_index.md | 2 +- patterns/avd/avdArm.json | 6 +- patterns/avd/avdCustomUi.json | 87 ++++++++++++++----- patterns/avd/templates/deploy.bicep | 4 +- 6 files changed, 85 insertions(+), 30 deletions(-) diff --git a/docs/content/patterns/specialized/avd/Known-Issues.md b/docs/content/patterns/specialized/avd/Known-Issues.md index 5cc92a95e..a536c573c 100644 --- a/docs/content/patterns/specialized/avd/Known-Issues.md +++ b/docs/content/patterns/specialized/avd/Known-Issues.md @@ -4,9 +4,17 @@ geekdocCollapseSection: true weight: 100 --- -## Host Pool Capacity Remaining not reporting +## VM in Separate Resource Group option fails deployment (Issue #457) +Updated the custom UI definition to no longer hide the AVD Resource Resource Group selection when selecting option for VMs in seperate resource group(s). This will ensure the value is passed into the ARM template for processing verses the previously noted place holder value of 'Resource Group' with brackets. +(Fixed on 12/18/24 - v2.1.8) + +## Action Group in subsequent deployment fails (Issue #315) +Action Group creation now gets appended with a unique 13 character value based on the hash of the Subscription Name and current time. This will allow for subsequent deployments to ensure the action group name is unique across subscriptions. +(Fixed on 12/18/24 - v2.1.8) + +## Host Pool Capacity Remaining not reporting (Issue #288) After 3/21/24 there was a permission missing that did not allow the automation account to gather the information. -(Fixed on: 12/10/2024) +(Fixed on: 12/10/2024 - v2.1.7) Fix without Redeploying: Simply assigning the identity tied to the Automation Account the Virtual Desktop Reader role on the Resource Group that houses the Host Pools. diff --git a/docs/content/patterns/specialized/avd/Whats-New.md b/docs/content/patterns/specialized/avd/Whats-New.md index 5750dd2b5..91fab1fa8 100644 --- a/docs/content/patterns/specialized/avd/Whats-New.md +++ b/docs/content/patterns/specialized/avd/Whats-New.md @@ -8,6 +8,10 @@ For information on what's new please refer to the [Releases](https://github.com/ To update your current deployment with the content from the latest release, please refer to the [Update to new release](Update-to-new-Release.md) page. +## 2024-12-18 +Bug fixes [(See Known Issues Section)](Known-Issues.md) +Added option to select alternate subscription for Log Analytics and an initial prerequisites note on the first screen. + ## 2024-12-10 ### After 3/21/2024 Host Pool Capacity Alert Rule would not fire An issue was discovered where the Automation Account Identity was not being assigned the Virtual Desktop Reader role on the Resource Group hosting all the AVD Resources. Thus, the output of the script was null which yielded no alerts, regardless of what the host pool capacity currently was. There was a condition on the role assignment that was adjusted so that it will be added at deployment. diff --git a/docs/content/patterns/specialized/avd/_index.md b/docs/content/patterns/specialized/avd/_index.md index fc44de063..f6313b74a 100644 --- a/docs/content/patterns/specialized/avd/_index.md +++ b/docs/content/patterns/specialized/avd/_index.md @@ -8,7 +8,7 @@ geekdocCollapseSection: true This solution provides a baseline of alerts for AVD that are disabled by default and for ensuring administrators and staff get meaningful and timely alerts when there are problems related to an AVD deployment. The deployment has been tested in Azure Global and Azure US Government and will incorporate storage alerts for either or both Azure Files and/or Azure Netapp Files. This solution initially was part of the Azure Virtual Desktop Solution Accelerator as a brownfield and moved to this location. **Current Version:** -v2.1.7 (Dec 10, 2024) +v2.1.8 (Dec 17, 2024) ## Alerts Table diff --git a/patterns/avd/avdArm.json b/patterns/avd/avdArm.json index 35e2a7f61..9ba951eda 100644 --- a/patterns/avd/avdArm.json +++ b/patterns/avd/avdArm.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.31.92.45157", - "templateHash": "17094575244347820739" + "templateHash": "6799636428937761449" } }, "parameters": { @@ -153,8 +153,8 @@ "input": "[split(parameters('StorageAccountResourceIds')[copyIndex('StorAcctRGsAll')], '/')[4]]" } ], - "ActionGroupName": "[format('ag-avdmetrics-{0}-{1}', parameters('Environment'), parameters('Location'))]", - "AlertDescriptionHeader": "Automated AVD Alert Deployment Solution (v2.1.7)\n", + "ActionGroupName": "[format('ag-avdmetrics-{0}-{1}-{2}', parameters('Environment'), parameters('Location'), uniqueString(subscription().displayName, parameters('time')))]", + "AlertDescriptionHeader": "Automated AVD Alert Deployment Solution (v2.1.8)\n", "AutomationAccountName": "[format('aa-avdmetrics-{0}-{1}-{2}', parameters('Environment'), parameters('Location'), parameters('AlertNamePrefix'))]", "CloudEnvironment": "[environment().name]", "ResourceGroupCreate": "[if(equals(parameters('ResourceGroupStatus'), 'New'), true(), false())]", diff --git a/patterns/avd/avdCustomUi.json b/patterns/avd/avdCustomUi.json index a16fbadf7..c019ca900 100644 --- a/patterns/avd/avdCustomUi.json +++ b/patterns/avd/avdCustomUi.json @@ -19,6 +19,15 @@ } } }, + { + "name": "infoMessagePrereqs", + "type": "Microsoft.Common.InfoBox", + "visible": true, + "options": { + "text": "This page is for the Subscription and region to deploy the Alerts Solution in. The next page will prompt for alternate subscriptions for Log Analytics if it is NOT within this subscription. You will need to ensure you are deploying with an Account that has full Owner over the Resource Group with this resource to allow the proper role assignments for the Automation Account!", + "style": "Warning" + } + }, { "name": "HostPoolsApi", "type": "Microsoft.Solutions.ArmApiControl", @@ -42,14 +51,6 @@ "method": "GET", "path": "[concat(steps('basics').resourceScope.subscription.id, '/providers/Microsoft.Storage/storageAccounts?api-version=2022-09-01')]" } - }, - { - "name": "LogAnalyticsApi", - "type": "Microsoft.Solutions.ArmApiControl", - "request": { - "method": "GET", - "path": "[concat(steps('basics').resourceScope.subscription.id, '/providers/microsoft.operationalinsights/workspaces?api-version=2021-06-01')]" - } } ] }, @@ -250,16 +251,58 @@ "visible": true }, { - "name": "LogAnalyticsWorkspaceResource", - "type": "Microsoft.Solutions.ResourceSelector", - "label": "Insights Log Analytics Workspace", - "toolTip": "Log Analytics Workspace in which AVD Insigts and diagnostics data resides in.", - "resourceType": "Microsoft.OperationalInsights/workspaces", - "constraints": { - "required": true - }, - "infoMessages": [], - "visible": true + "name": "LAWSection", + "type": "Microsoft.Common.Section", + "label": "Log Analytics Selection", + "elements": [ + { + "type": "Microsoft.Common.SubscriptionSelector", + "name": "LAWsubscription", + "label": "Log Analytics Subscription", + "resourceProviders": [ + "Microsoft.OperationalInsights" + ] + }, + { + "name": "LogAnalyticsApi", + "type": "Microsoft.Solutions.ArmApiControl", + "request": { + "method": "GET", + "path": "[concat('/subscriptions/', steps('AlertsConfig').LAWSection.LAWsubscription.subscriptionId, '/providers/microsoft.operationalinsights/workspaces?api-version=2021-06-01')]", + "transforms": { + "list": "value[*].{label:name, value:id, description:location}" + } + } + }, + { + "name": "LogAnalyticsWorkspaceResource", + "type": "Microsoft.Common.DropDown", + "label": "Insights Log Analytics Workspace NEW", + "toolTip": "Log Analytics Workspace in which AVD Insigts and diagnostics data resides in.", + "placeholder": "", + "defaultValue": "", + "multiselect": false, + "selectAll": false, + "filter": true, + "filterPlaceholder": "Filter items ...", + "multiLine": true, + "defaultDescription": "A value for selection", + "constraints": { + "allowedValues": "[steps('AlertsConfig').LAWSection.LogAnalyticsApi.transformed.list]", + "required": true + }, + "visible": true + }, + { + "name": "infoMessageLogAnalytics", + "type": "Microsoft.Common.InfoBox", + "visible": true, + "options": { + "text": "The Log Analytics Workspace in which AVD Insights and diagnostics data resides in.", + "style": "Info" + } + } + ] }, { "name": "optionVMMetrics", @@ -283,9 +326,9 @@ "defaultDescription": "A value for selection", "constraints": { "allowedValues": "[map(steps('basics').ResGroupsApi.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.id, '\"}')))]", - "required": "[if(steps('AlertsConfig').optionVMMetrics, false, true)]" + "required": true }, - "visible": "[if(steps('AlertsConfig').optionVMMetrics, false, true)]" + "visible": true }, { "name": "HostPools", @@ -468,7 +511,7 @@ "Environment": "[steps('AlertsConfig').Environment]", "HostPoolInfo": "[steps('AlertsConfig').hostPoolInfo]", "HostPools": "[steps('AlertsConfig').HostPools]", - "LogAnalyticsWorkspaceResourceId": "[steps('AlertsConfig').LogAnalyticsWorkspaceResource.id]", + "LogAnalyticsWorkspaceResourceId": "[steps('AlertsConfig').LAWSection.LogAnalyticsWorkspaceResource]", "ResourceGroupName": "[if(equals(steps('AlertsConfig').ResourceGroupStatus, 'New'), steps('AlertsConfig').resourceGroupNameNew, last(split(steps('AlertsConfig').resourceGroupNameExisting, '/')))]", "ResourceGroupStatus": "[steps('AlertsConfig').ResourceGroupStatus]", "StorageAccountResourceIds": "[steps('AlertsConfig').AzFilesStorageSection.StorageAccountResourceIds]", @@ -480,4 +523,4 @@ "subscriptionId": "[steps('basics').resourceScope.subscription.id]" } } -} \ No newline at end of file +} diff --git a/patterns/avd/templates/deploy.bicep b/patterns/avd/templates/deploy.bicep index 87a087a0b..88a4d85c1 100644 --- a/patterns/avd/templates/deploy.bicep +++ b/patterns/avd/templates/deploy.bicep @@ -72,8 +72,8 @@ param ANFVolumeResourceIds array = [] param Tags object = {} -var ActionGroupName = 'ag-avdmetrics-${Environment}-${Location}' -var AlertDescriptionHeader = 'Automated AVD Alert Deployment Solution (v2.1.7)\n' // DESCRIPTION HEADER AND VERSION <----------------------------- +var ActionGroupName = 'ag-avdmetrics-${Environment}-${Location}-${uniqueString(subscription().displayName, time)}' +var AlertDescriptionHeader = 'Automated AVD Alert Deployment Solution (v2.1.8)\n' // DESCRIPTION HEADER AND VERSION <----------------------------- var AutomationAccountName = 'aa-avdmetrics-${Environment}-${Location}-${AlertNamePrefix}' var CloudEnvironment = environment().name var ResourceGroupCreate = ResourceGroupStatus == 'New' ? true : false From 0cd73726172ae99069e8ac0cf5136e9081da0958 Mon Sep 17 00:00:00 2001 From: "Jonathan.Core" Date: Wed, 18 Dec 2024 13:31:04 -0500 Subject: [PATCH 20/21] Update AVD deployment templates and scripts for enhanced subscription selection and bug fixes --- .../patterns/specialized/avd/Whats-New.md | 2 +- patterns/avd/avdArm.json | 19 ++++++----- patterns/avd/avdCustomUi.json | 34 +++++++++++++++---- patterns/avd/scripts/Get-StorAcctInfo.ps1 | 12 +++++-- patterns/avd/templates/deploy.bicep | 14 ++++---- 5 files changed, 55 insertions(+), 26 deletions(-) diff --git a/docs/content/patterns/specialized/avd/Whats-New.md b/docs/content/patterns/specialized/avd/Whats-New.md index 91fab1fa8..567bd4f0e 100644 --- a/docs/content/patterns/specialized/avd/Whats-New.md +++ b/docs/content/patterns/specialized/avd/Whats-New.md @@ -10,7 +10,7 @@ To update your current deployment with the content from the latest release, plea ## 2024-12-18 Bug fixes [(See Known Issues Section)](Known-Issues.md) -Added option to select alternate subscription for Log Analytics and an initial prerequisites note on the first screen. +Added option to select alternate subscription for Log Analytics and Storage as well as an initial prerequisites note on the first screen. ## 2024-12-10 ### After 3/21/2024 Host Pool Capacity Alert Rule would not fire diff --git a/patterns/avd/avdArm.json b/patterns/avd/avdArm.json index 9ba951eda..45e2903e0 100644 --- a/patterns/avd/avdArm.json +++ b/patterns/avd/avdArm.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.31.92.45157", - "templateHash": "6799636428937761449" + "templateHash": "9307847103098609977" } }, "parameters": { @@ -148,13 +148,13 @@ "variables": { "copy": [ { - "name": "StorAcctRGsAll", + "name": "StorAcctsAll", "count": "[length(parameters('StorageAccountResourceIds'))]", - "input": "[split(parameters('StorageAccountResourceIds')[copyIndex('StorAcctRGsAll')], '/')[4]]" + "input": "[format('{0},{1}', split(parameters('StorageAccountResourceIds')[copyIndex('StorAcctsAll')], '/')[2], split(parameters('StorageAccountResourceIds')[copyIndex('StorAcctsAll')], '/')[4])]" } ], "ActionGroupName": "[format('ag-avdmetrics-{0}-{1}-{2}', parameters('Environment'), parameters('Location'), uniqueString(subscription().displayName, parameters('time')))]", - "AlertDescriptionHeader": "Automated AVD Alert Deployment Solution (v2.1.8)\n", + "AlertDescriptionHeader": "Automated AVD Alert Deployment Solution (v2.2.0)\n", "AutomationAccountName": "[format('aa-avdmetrics-{0}-{1}-{2}', parameters('Environment'), parameters('Location'), parameters('AlertNamePrefix'))]", "CloudEnvironment": "[environment().name]", "ResourceGroupCreate": "[if(equals(parameters('ResourceGroupStatus'), 'New'), true(), false())]", @@ -162,7 +162,7 @@ "RunbookNameGetHostPool": "AvdHostPoolLogData", "RunbookScriptGetStorage": "[format('Get-StorAcctInfo.ps1{0}', parameters('_ArtifactsLocationSasToken'))]", "RunbookScriptGetHostPool": "[format('Get-HostPoolInfo.ps1{0}', parameters('_ArtifactsLocationSasToken'))]", - "StorAcctRGs": "[union(variables('StorAcctRGsAll'), createArray())]", + "StorAcctsSubRGs": "[union(variables('StorAcctsAll'), createArray())]", "RoleAssignments": { "DesktopVirtualizationRead": { "Name": "Desktop-Virtualization-Reader", @@ -6879,12 +6879,13 @@ { "copy": { "name": "roleAssignment_Storage", - "count": "[length(variables('StorAcctRGs'))]" + "count": "[length(variables('StorAcctsSubRGs'))]" }, "type": "Microsoft.Resources/deployments", "apiVersion": "2022-09-01", - "name": "[format('c_StorAcctContrib_{0}', variables('StorAcctRGs')[copyIndex()])]", - "resourceGroup": "[variables('StorAcctRGs')[copyIndex()]]", + "name": "[format('c_StorAcctContrib_{0}', split(variables('StorAcctsSubRGs')[copyIndex()], ',')[1])]", + "subscriptionId": "[split(variables('StorAcctsSubRGs')[copyIndex()], ',')[0]]", + "resourceGroup": "[split(variables('StorAcctsSubRGs')[copyIndex()], ',')[1]]", "properties": { "expressionEvaluationOptions": { "scope": "inner" @@ -6904,7 +6905,7 @@ "value": "ServicePrincipal" }, "resourceGroupName": { - "value": "[variables('StorAcctRGs')[copyIndex()]]" + "value": "[split(variables('StorAcctsSubRGs')[copyIndex()], ',')[1]]" } }, "template": { diff --git a/patterns/avd/avdCustomUi.json b/patterns/avd/avdCustomUi.json index c019ca900..62373b4a6 100644 --- a/patterns/avd/avdCustomUi.json +++ b/patterns/avd/avdCustomUi.json @@ -414,18 +414,40 @@ "type": "Microsoft.Common.Section", "label": "Azure Files Storage", "elements": [ + { + "type": "Microsoft.Common.SubscriptionSelector", + "name": "StorageSubscription", + "label": "Azure Files Subscription", + "resourceProviders": [ + "Microsoft.Storage" + ] + }, + { + "name": "StorageApi", + "type": "Microsoft.Solutions.ArmApiControl", + "request": { + "method": "GET", + "path": "[concat('/subscriptions/', steps('AlertsConfig').AzFilesStorageSection.StorageSubscription.subscriptionId, '/providers/Microsoft.Storage/storageAccounts?api-version=2023-05-01')]", + "transforms": { + "list": "value[*].{label: name, value: id, description: join(' | ', [sku.name, location])}" + } + } + }, { "name": "StorageAccountResourceIds", "type": "Microsoft.Common.DropDown", "label": "AVD Related Storage Accounts", - "multiselect": true, - "selectAll": true, - "defaultValue": "[]", "toolTip": "The Storage Accounts that are used for FSLogix or MSIX App attach.", - "filterPlaceholder": "Filter Storage Accounts...", + "placeholder": "", + "defaultValue": "[]", + "multiselect": true, + "selectAll": false, + "filter": true, + "filterPlaceholder": "Filter Storage Accounts ...", + "multiLine": true, "defaultDescription": "A value for selection", "constraints": { - "allowedValues": "[map(steps('basics').StorAcctsApi.value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.id, '\"}')))]", + "allowedValues": "[steps('AlertsConfig').AzFilesStorageSection.StorageApi.transformed.list]", "required": true }, "visible": true @@ -523,4 +545,4 @@ "subscriptionId": "[steps('basics').resourceScope.subscription.id]" } } -} +} \ No newline at end of file diff --git a/patterns/avd/scripts/Get-StorAcctInfo.ps1 b/patterns/avd/scripts/Get-StorAcctInfo.ps1 index e702a4c2c..94e967815 100644 --- a/patterns/avd/scripts/Get-StorAcctInfo.ps1 +++ b/patterns/avd/scripts/Get-StorAcctInfo.ps1 @@ -23,14 +23,20 @@ Connect-AzAccount -Identity -Environment $CloudEnvironment | Out-Null Import-Module -Name 'Az.Accounts' Import-Module -Name 'Az.Storage' -$SubName = (Get-azSubscription -SubscriptionId ($StorageAccountResourceIDs -split '/')[2]).Name +# $SubName = (Get-azSubscription -SubscriptionId ($StorageAccountResourceIDs -split '/')[2]).Name # Foreach storage account Foreach ($storageAcct in $storageAccountResourceIDs) { + $Subscription = Get-azSubscription -SubscriptionId ($storageAcct -split '/')[2] + $SubName = $Subscription.Name + + #Get current context and switch if storage in different Subscription + $Context = Get-AzContext + if ($Context.Subscription.Id -ne $Subscription.Id) {Set-AzContext -SubscriptionId $Subscription.Id | Out-Null} $resourceGroup = ($storageAcct -split '/')[4] $storageAcctName = ($storageAcct -split '/')[8] - #Write-Host "Working on Storage:" $storageAcctName "in" $resourceGroup + #Write-Output "Working on Storage:" $storageAcctName "in" $SubName " \ " $resourceGroup # $shares = Get-AzStorageShare -ResourceGroupName $resourceGroup -StorageAccountName $storageAcctName -Name 'profiles' -GetShareUsage $shares = Get-AzRmStorageShare -ResourceGroupName $ResourceGroup -StorageAccountName $storageAcctName @@ -38,7 +44,7 @@ Foreach ($storageAcct in $storageAccountResourceIDs) { # Foreach Share Foreach ($share in $shares) { $shareName = $share.Name - $share = Get-AzRmStorageShare -ResourceGroupName $ResourceGroup -StorageAccountName $storageAcctName -Name $shareName -GetShareUsage + $share = Get-AzRmStorageShare -ResourceGroupName $ResourceGroup -StorageAccountName $storageAcctName -Name $shareName -GetShareUsage -SubscriptionId $Subscription.Id #Write-Host "Share: " $shareName $shareQuota = $share.QuotaGiB #GB $shareUsageInGB = $share.ShareUsageBytes / 1073741824 # Bytes to GB diff --git a/patterns/avd/templates/deploy.bicep b/patterns/avd/templates/deploy.bicep index 88a4d85c1..cba231a41 100644 --- a/patterns/avd/templates/deploy.bicep +++ b/patterns/avd/templates/deploy.bicep @@ -73,7 +73,7 @@ param ANFVolumeResourceIds array = [] param Tags object = {} var ActionGroupName = 'ag-avdmetrics-${Environment}-${Location}-${uniqueString(subscription().displayName, time)}' -var AlertDescriptionHeader = 'Automated AVD Alert Deployment Solution (v2.1.8)\n' // DESCRIPTION HEADER AND VERSION <----------------------------- +var AlertDescriptionHeader = 'Automated AVD Alert Deployment Solution (v2.2.0)\n' // DESCRIPTION HEADER AND VERSION <----------------------------- var AutomationAccountName = 'aa-avdmetrics-${Environment}-${Location}-${AlertNamePrefix}' var CloudEnvironment = environment().name var ResourceGroupCreate = ResourceGroupStatus == 'New' ? true : false @@ -81,8 +81,8 @@ var RunbookNameGetStorage = 'AvdStorageLogData' var RunbookNameGetHostPool = 'AvdHostPoolLogData' var RunbookScriptGetStorage = 'Get-StorAcctInfo.ps1${_ArtifactsLocationSasToken}' var RunbookScriptGetHostPool = 'Get-HostPoolInfo.ps1${_ArtifactsLocationSasToken}' -var StorAcctRGsAll = [for item in StorageAccountResourceIds: split(item, '/')[4]] -var StorAcctRGs = union(StorAcctRGsAll, []) +var StorAcctsAll = [for item in StorageAccountResourceIds: '${split(item, '/')[2]},${split(item, '/')[4]}'] //format of SubscriptionId,ResourceGroup +var StorAcctsSubRGs = union(StorAcctsAll, []) // var UsrManagedIdentityName = 'id-ds-avdAlerts-Deployment' var RoleAssignments = { @@ -2281,15 +2281,15 @@ module roleAssignment_LogAnalytics 'carml/1.3.0/Microsoft.Authorization/roleAssi // Assign role to Automation Account for Storage Account Contributor to allow Automation Account to gather Storage Statistics // (Needed for Automation Account) module roleAssignment_Storage 'carml/1.3.0/Microsoft.Authorization/roleAssignments/resourceGroup/deploy.bicep' = [ - for StorAcctRG in StorAcctRGs: { - scope: resourceGroup(StorAcctRG) - name: 'c_StorAcctContrib_${StorAcctRG}' + for StorAcctInfo in StorAcctsSubRGs: { + scope: resourceGroup(split(StorAcctInfo, ',')[0],split(StorAcctInfo, ',')[1]) + name: 'c_StorAcctContrib_${split(StorAcctInfo, ',')[1]}' params: { enableDefaultTelemetry: false principalId: automationAccount.outputs.systemAssignedPrincipalId roleDefinitionIdOrName: '/providers/Microsoft.Authorization/roleDefinitions/${RoleAssignments.StoreAcctContrib.GUID}' principalType: 'ServicePrincipal' - resourceGroupName: StorAcctRG + resourceGroupName: split(StorAcctInfo, ',')[1] } dependsOn: [ automationAccount From 0b06760d075d83a8bcbd8e23d566f406988810ec Mon Sep 17 00:00:00 2001 From: "Jonathan.Core" Date: Wed, 18 Dec 2024 13:33:15 -0500 Subject: [PATCH 21/21] Update Known Issues and index documentation for version bump to v2.2.0 --- docs/content/patterns/specialized/avd/Known-Issues.md | 2 +- docs/content/patterns/specialized/avd/_index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/patterns/specialized/avd/Known-Issues.md b/docs/content/patterns/specialized/avd/Known-Issues.md index a536c573c..356f1736f 100644 --- a/docs/content/patterns/specialized/avd/Known-Issues.md +++ b/docs/content/patterns/specialized/avd/Known-Issues.md @@ -6,7 +6,7 @@ weight: 100 ## VM in Separate Resource Group option fails deployment (Issue #457) Updated the custom UI definition to no longer hide the AVD Resource Resource Group selection when selecting option for VMs in seperate resource group(s). This will ensure the value is passed into the ARM template for processing verses the previously noted place holder value of 'Resource Group' with brackets. -(Fixed on 12/18/24 - v2.1.8) +(Fixed on 12/18/24 - v2.2.0) ## Action Group in subsequent deployment fails (Issue #315) Action Group creation now gets appended with a unique 13 character value based on the hash of the Subscription Name and current time. This will allow for subsequent deployments to ensure the action group name is unique across subscriptions. diff --git a/docs/content/patterns/specialized/avd/_index.md b/docs/content/patterns/specialized/avd/_index.md index f6313b74a..7bff6bfd4 100644 --- a/docs/content/patterns/specialized/avd/_index.md +++ b/docs/content/patterns/specialized/avd/_index.md @@ -8,7 +8,7 @@ geekdocCollapseSection: true This solution provides a baseline of alerts for AVD that are disabled by default and for ensuring administrators and staff get meaningful and timely alerts when there are problems related to an AVD deployment. The deployment has been tested in Azure Global and Azure US Government and will incorporate storage alerts for either or both Azure Files and/or Azure Netapp Files. This solution initially was part of the Azure Virtual Desktop Solution Accelerator as a brownfield and moved to this location. **Current Version:** -v2.1.8 (Dec 17, 2024) +v2.2.0 (Dec 18, 2024) ## Alerts Table

eLM@qclw#|mL+KW~! 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 F{WoZ_vq=B| literal 108115 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